diff options
author | dimitri staessens <[email protected]> | 2016-08-05 15:06:37 +0200 |
---|---|---|
committer | dimitri staessens <[email protected]> | 2016-08-05 15:06:37 +0200 |
commit | 84d540904e13882e8c299f98e5931a1213b6d47e (patch) | |
tree | 7ece6c8fc28639ef255c000be30519cfcebc0199 | |
parent | 55356470f9fe0b60bd9e0db1e90dbca6b4e7db63 (diff) | |
download | ouroboros-84d540904e13882e8c299f98e5931a1213b6d47e.tar.gz ouroboros-84d540904e13882e8c299f98e5931a1213b6d47e.zip |
ipcpd: Fix memleak
The entry from the ringbuffer was never freed, causing memleak per SDU.
-rw-r--r-- | src/ipcpd/local/main.c | 2 | ||||
-rw-r--r-- | src/ipcpd/shim-eth-llc/main.c | 2 | ||||
-rw-r--r-- | src/ipcpd/shim-udp/main.c | 2 |
3 files changed, 6 insertions, 0 deletions
diff --git a/src/ipcpd/local/main.c b/src/ipcpd/local/main.c index e77a0403..99580a45 100644 --- a/src/ipcpd/local/main.c +++ b/src/ipcpd/local/main.c @@ -210,6 +210,8 @@ static void * ipcp_local_sdu_loop(void * o) pthread_rwlock_unlock(&_ap_instance->flows_lock); pthread_rwlock_unlock(&_ipcp->state_lock); + + free(e); } return (void *) 1; diff --git a/src/ipcpd/shim-eth-llc/main.c b/src/ipcpd/shim-eth-llc/main.c index 3b70b955..9f6573c9 100644 --- a/src/ipcpd/shim-eth-llc/main.c +++ b/src/ipcpd/shim-eth-llc/main.c @@ -846,6 +846,8 @@ static void * eth_llc_ipcp_sdu_writer(void * o) shm_du_map_remove(shim_data(_ipcp)->dum, e->index); pthread_rwlock_unlock(&_ipcp->state_lock); + + free(e); } return (void *) 1; diff --git a/src/ipcpd/shim-udp/main.c b/src/ipcpd/shim-udp/main.c index 49fd7772..9d6d15a7 100644 --- a/src/ipcpd/shim-udp/main.c +++ b/src/ipcpd/shim-udp/main.c @@ -802,6 +802,8 @@ static void * ipcp_udp_sdu_loop(void * o) shm_du_map_remove(_ap_instance->dum, e->index); pthread_rwlock_unlock(&_ipcp->state_lock); + + free(e); } return (void *) 1; |