diff options
author | Dimitri Staessens <dimitri.staessens@intec.ugent.be> | 2016-03-03 17:15:03 +0100 |
---|---|---|
committer | Dimitri Staessens <dimitri.staessens@intec.ugent.be> | 2016-03-03 17:15:03 +0100 |
commit | 11c709cc077746621e3d9ff2411a748d400f1d4f (patch) | |
tree | bca214380c41311fe1d7e9d05f77f42c4e1b3161 | |
parent | 52a5113760802e16b07d9d954237871d52cff70a (diff) | |
parent | ef2a4f128fa0250db5457069e397bf328c6da25e (diff) | |
download | ouroboros-11c709cc077746621e3d9ff2411a748d400f1d4f.tar.gz ouroboros-11c709cc077746621e3d9ff2411a748d400f1d4f.zip |
Merged in sandervrijders/ouroboros/be-memleaks (pull request #19)
lib, irmd: Fix memleaks
-rw-r--r-- | src/irmd/main.c | 11 | ||||
-rw-r--r-- | src/lib/irm.c | 8 |
2 files changed, 8 insertions, 11 deletions
diff --git a/src/irmd/main.c b/src/irmd/main.c index 73533ef0..0c69de2f 100644 --- a/src/irmd/main.c +++ b/src/irmd/main.c @@ -78,18 +78,12 @@ static void unreg_ipcp(rina_name_t * name, int main() { int sockfd; - uint8_t * buf; + uint8_t buf[IRM_MSG_BUF_SIZE]; sockfd = server_socket_open(IRM_SOCK_PATH); if (sockfd < 0) return -1; - buf = malloc(sizeof(*buf) * IRM_MSG_BUF_SIZE); - if (buf == NULL) { - LOG_ERR("Cannot allocate memory"); - return -ENOMEM; - } - while (true) { int cli_sockfd; struct irm_msg * msg; @@ -140,12 +134,11 @@ int main() LOG_ERR("Don't know that message code"); break; } + free(msg); } close(cli_sockfd); } - free(buf); - return 0; } diff --git a/src/lib/irm.c b/src/lib/irm.c index 97000029..8756d7fc 100644 --- a/src/lib/irm.c +++ b/src/lib/irm.c @@ -26,6 +26,7 @@ #include <ouroboros/common.h> #include <ouroboros/logs.h> #include <ouroboros/sockets.h> +#include <stdlib.h> static int send_irm_msg(struct irm_msg * msg) { @@ -47,8 +48,11 @@ static int send_irm_msg(struct irm_msg * msg) return -1; } - close(sockfd); - return 0; + free(buf->data); + free(buf); + + close(sockfd); + return 0; } int irm_create_ipcp(rina_name_t name, |