From 47e035e29f8d4870b6a9def0cb1a397cb91ac5bf Mon Sep 17 00:00:00 2001 From: Jose Marcial Vieira Bisneto Date: Tue, 29 Nov 2016 08:26:05 -0300 Subject: [PATCH] Fixed some memory leaks in namesys/dns and path/path --- namesys/dns.c | 15 ++++++++------- path/path.c | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/namesys/dns.c b/namesys/dns.c index 3ed6a90..454bc1b 100644 --- a/namesys/dns.c +++ b/namesys/dns.c @@ -68,13 +68,6 @@ int DNSResolverResolveOnce (char **path, char *name) return ErrPipe; } - dnslink = malloc(strlen(domain) + sizeof(dlprefix)); - if (!dnslink) { - return ErrAllocFailed; - } - strcpy (dnslink, dlprefix); - strcat (dnslink, domain); - r = fork(); switch(r) { case -1: @@ -90,6 +83,14 @@ int DNSResolverResolveOnce (char **path, char *name) return ErrPipe; case 0: // child close(p2[STDIN_FILENO]); // we don't need to read at child process. + + dnslink = malloc(strlen(domain) + sizeof(dlprefix)); + if (!dnslink) { + return ErrAllocFailed; + } + strcpy (dnslink, dlprefix); + strcat (dnslink, domain); + return workDomain (p2[STDOUT_FILENO], r, dnslink); } close(p2[STDOUT_FILENO]); // we don't need to write at main process. diff --git a/path/path.c b/path/path.c index 75b71b7..057835c 100644 --- a/path/path.c +++ b/path/path.c @@ -43,7 +43,7 @@ char** SplitN (char *p, char *delim, int n) r = calloc(sizeof(char*), n + 1); // splits plus NULL pointer termination if (!r) { - free(r); + free(rbuf); return NULL; }