summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSander Vrijders <sander.vrijders@intec.ugent.be>2016-03-17 15:20:29 +0100
committerSander Vrijders <sander.vrijders@intec.ugent.be>2016-03-17 15:20:29 +0100
commit02681c391cbc1cc08f2dea5d8499f301d9321147 (patch)
tree54bc0a9cfb51c1759bb2056961c555fcc9979da7
parent722b769e4d519f2428ee893a78cafa999151bb1c (diff)
downloadouroboros-02681c391cbc1cc08f2dea5d8499f301d9321147.tar.gz
ouroboros-02681c391cbc1cc08f2dea5d8499f301d9321147.zip
lib: Clean up memleaks
Some allocations were not freed in case the creation of a new IPCP failed.
-rw-r--r--src/lib/ipcp.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/lib/ipcp.c b/src/lib/ipcp.c
index 7870e478..6bc3c75f 100644
--- a/src/lib/ipcp.c
+++ b/src/lib/ipcp.c
@@ -104,14 +104,15 @@ pid_t ipcp_create(rina_name_t name,
api_id = malloc(n_digits(name.api_id) + 1);
if (!api_id) {
LOG_ERR("Failed to malloc");
- exit(-1);
+ exit(EXIT_FAILURE);
}
sprintf(api_id, "%d", name.api_id);
aei_id = malloc(n_digits(name.aei_id) + 1);
if (!aei_id) {
LOG_ERR("Failed to malloc");
- exit(-1);
+ free(api_id);
+ exit(EXIT_FAILURE);
}
sprintf(aei_id, "%d", name.aei_id);
@@ -121,7 +122,9 @@ pid_t ipcp_create(rina_name_t name,
full_name = malloc(len);
if (!full_name) {
LOG_ERR("Failed to malloc");
- exit(-1);
+ free(api_id);
+ free(aei_id);
+ exit(EXIT_FAILURE);
}
strcpy(full_name, INSTALL_DIR);
@@ -140,7 +143,10 @@ pid_t ipcp_create(rina_name_t name,
LOG_DBG("%s", strerror(errno));
LOG_ERR("Failed to load IPCP daemon");
LOG_ERR("Make sure to run the installed version");
- exit(-1);
+ free(api_id);
+ free(aei_id);
+ free(full_name);
+ exit(EXIT_FAILURE);
}
int ipcp_destroy(pid_t pid)