From c662029bed19d3b706cee02ac093758e4cc99649 Mon Sep 17 00:00:00 2001 From: Fredrik Tolf Date: Thu, 18 Sep 2008 23:03:00 +0200 Subject: [PATCH] Plugged a couple of memory leaks. --- daemon/client.c | 4 ++++ daemon/fnet-dc.c | 1 + daemon/ui.c | 1 + 3 files changed, 6 insertions(+) diff --git a/daemon/client.c b/daemon/client.c index 46766e9..e493a88 100644 --- a/daemon/client.c +++ b/daemon/client.c @@ -294,8 +294,10 @@ static void readhashcache(void) if((stream = fopen(hcname, "r")) == NULL) { flog(LOG_WARNING, "could not open hash cache %s: %s", hcname, strerror(errno)); + free(hcname); return; } + free(hcname); while(hashcache != NULL) freehashcache(hashcache); line = 0; @@ -369,8 +371,10 @@ static void writehashcache(int now) if((stream = fopen(hcname, "w")) == NULL) { flog(LOG_WARNING, "could not write hash cache %s: %s", hcname, strerror(errno)); + free(hcname); return; } + free(hcname); fprintf(stream, "# Dolda Connect hash cache file\n"); fprintf(stream, "# Generated automatically, do not edit\n"); fprintf(stream, "# Format: DEVICE INODE MTIME [HASH...]\n"); diff --git a/daemon/fnet-dc.c b/daemon/fnet-dc.c index 3dbb81f..5123c80 100644 --- a/daemon/fnet-dc.c +++ b/daemon/fnet-dc.c @@ -2117,6 +2117,7 @@ static void cmd_adcget(struct socket *sk, struct dcpeer *peer, char *cmd, char * } else if(fd >= 0) { if((wbuf = adc2path(argv[1])) != NULL) transfersetpath(peer->transfer, wbuf); + free(wbuf); peer->transfer->flags.b.minislot = 1; } if(fd < 0) diff --git a/daemon/ui.c b/daemon/ui.c index 9d10fa2..fdedc50 100644 --- a/daemon/ui.c +++ b/daemon/ui.c @@ -1214,6 +1214,7 @@ static void cmd_filtercmd(struct socket *sk, struct uidata *data, int argc, wcha for(pp = cargv; *pp; pp++) free(*pp); free(cargv); + free(filtercmd); data->fcmdsk = wrapsock(pipe); data->fcmdpid = pid; if(data->fcmdbuf != NULL) -- 2.11.0