Pau Espin Pedrol has uploaded this change for review. ( 
https://gerrit.osmocom.org/12078


Change subject: PointerFIFO: Fix memleak of ListNode
......................................................................

PointerFIFO: Fix memleak of ListNode

Found by ASan. when PointerFIFO::release() is called, alloicated node
being release is stored into an internal list for later-reuse without
having to access memory allocator. However, nodes from this list are
never freed.

Change-Id: I40e5e28603cde67005d9d92772967b05465ea2b8
---
M CommonLibs/LinkedLists.cpp
M CommonLibs/LinkedLists.h
2 files changed, 20 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/78/12078/1

diff --git a/CommonLibs/LinkedLists.cpp b/CommonLibs/LinkedLists.cpp
index 35a8541..b73a579 100644
--- a/CommonLibs/LinkedLists.cpp
+++ b/CommonLibs/LinkedLists.cpp
@@ -29,6 +29,25 @@
 #include "LinkedLists.h"


+PointerFIFO::~PointerFIFO()
+{
+       ListNode *node, *next;
+
+       node = mHead;
+       while (node != NULL) {
+               next = node->next();
+               delete node;
+               node = next;
+       }
+
+       node = mFreeList;
+       while (node != NULL) {
+               next = node->next();
+               delete node;
+               node = next;
+       }
+}
+
 void PointerFIFO::push_front(void* val)        // by pat
 {
        // Pat added this routine for completeness, but never used or tested.
diff --git a/CommonLibs/LinkedLists.h b/CommonLibs/LinkedLists.h
index 31fb9c5..136d13d 100644
--- a/CommonLibs/LinkedLists.h
+++ b/CommonLibs/LinkedLists.h
@@ -70,6 +70,7 @@
                :mHead(NULL),mTail(NULL),mFreeList(NULL),
                mSize(0)
        {}
+       ~PointerFIFO();

        unsigned size() const { return mSize; }
        unsigned totalSize() const { return 0; }        // Not used in this 
version.

--
To view, visit https://gerrit.osmocom.org/12078
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I40e5e28603cde67005d9d92772967b05465ea2b8
Gerrit-Change-Number: 12078
Gerrit-PatchSet: 1
Gerrit-Owner: Pau Espin Pedrol <[email protected]>

Reply via email to