Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8196d2cc authored by Luis A. Lozano's avatar Luis A. Lozano
Browse files

Fix "use of memory after freed" warning.

Static analyzer gets confused in the code to free a linked list.
To avoid confusion add an "assert" to tell the analyzer there is no
alias between the memory being deleted and accessed.

Bug: b/27101951
Test: Warning is gone.
Change-Id: Ia6661ee76908c2025b5e1a764d25ba3e11bf44c8
parent 71f6de41
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -289,7 +289,15 @@ SimpleBestFitAllocator::SimpleBestFitAllocator(size_t size)
SimpleBestFitAllocator::~SimpleBestFitAllocator()
{
    while(!mList.isEmpty()) {
        delete mList.remove(mList.head());
        chunk_t* removed = mList.remove(mList.head());
#ifdef __clang_analyzer__
        // Clang static analyzer gets confused in this loop
        // and generates a false positive warning about accessing
        // memory that is already freed.
        // Add an "assert" to avoid the confusion.
        LOG_ALWAYS_FATAL_IF(mList.head() == removed);
#endif
        delete removed;
    }
}