diff options
Diffstat (limited to 'src')
-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, |