jsoninfo: fix a resource leak
authorFerry Huberts <ferry.huberts@pelagic.nl>
Tue, 23 Oct 2012 08:46:08 +0000 (10:46 +0200)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Tue, 23 Oct 2012 11:45:14 +0000 (13:45 +0200)
Coverity:
CID 739677 (#1 of 1): Resource leak (RESOURCE_LEAK)
At (6): Variable "f" going out of scope leaks the storage it points to.

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
lib/jsoninfo/src/olsrd_jsoninfo.c

index 5a4fe4c..1a6d9b7 100644 (file)
@@ -422,6 +422,7 @@ read_uuid_from_file(const char *file)
 {
   FILE *f;
   char* end;
+  int r = 0;
 
   *uuid = 0;
 
@@ -433,20 +434,19 @@ read_uuid_from_file(const char *file)
     return -1;
   }
   if (fread(uuid, 1, UUIDLEN, f) > 0) {
-    fclose(f);
     /* we only use the first line of the file */
     end = strchr(uuid, '\n');
     if(end)
       *end = 0;
-    return 0;
+    r = 0;
   } else {
     olsr_printf(1, "(JSONINFO) Could not read UUID from '%s': %s\n",
                 file, strerror(errno));
-    return -1;
+    r = -1;
   }
 
   fclose(f);
-  return 1;
+  return r;
 }
 
 static void