From 84d540904e13882e8c299f98e5931a1213b6d47e Mon Sep 17 00:00:00 2001 From: dimitri staessens Date: Fri, 5 Aug 2016 15:06:37 +0200 Subject: ipcpd: Fix memleak The entry from the ringbuffer was never freed, causing memleak per SDU. --- src/ipcpd/local/main.c | 2 ++ src/ipcpd/shim-eth-llc/main.c | 2 ++ src/ipcpd/shim-udp/main.c | 2 ++ 3 files changed, 6 insertions(+) (limited to 'src/ipcpd') 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; -- cgit v1.2.3