summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordimitri staessens <dimitri.staessens@intec.ugent.be>2016-08-05 15:06:37 +0200
committerdimitri staessens <dimitri.staessens@intec.ugent.be>2016-08-05 15:06:37 +0200
commit84d540904e13882e8c299f98e5931a1213b6d47e (patch)
tree7ece6c8fc28639ef255c000be30519cfcebc0199
parent55356470f9fe0b60bd9e0db1e90dbca6b4e7db63 (diff)
downloadouroboros-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.c2
-rw-r--r--src/ipcpd/shim-eth-llc/main.c2
-rw-r--r--src/ipcpd/shim-udp/main.c2
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;