X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fclient.c;h=e493a884ce47f449b80ea86ad3e1901dffce9c54;hb=HEAD;hp=26b50f34155b132caeac7f32c7dc5aba4d394dbb;hpb=caa88daef3184efc09e60e9b902d1ae6c98db9fb;p=doldaconnect.git diff --git a/daemon/client.c b/daemon/client.c index 26b50f3..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"); @@ -1086,6 +1090,8 @@ static void terminate(void) { if(hashjob != 0) kill(hashjob, SIGHUP); + if(hashwritetimer != NULL) + writehashcache(1); while(shares != NULL) freesharepoint(shares); freecache(shareroot);