Plugged a couple of memory leaks.
authorFredrik Tolf <fredrik@dolda2000.com>
Thu, 18 Sep 2008 21:03:00 +0000 (23:03 +0200)
committerFredrik Tolf <fredrik@dolda2000.com>
Thu, 18 Sep 2008 21:21:18 +0000 (23:21 +0200)
daemon/client.c
daemon/fnet-dc.c
daemon/ui.c

index 46766e9..e493a88 100644 (file)
@@ -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");
index 3dbb81f..5123c80 100644 (file)
@@ -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)
index 9d10fa2..fdedc50 100644 (file)
@@ -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)