]> git.ipfire.org Git - thirdparty/rrdtool-1.x.git/commitdiff
src/rrd_daemon.c: fix Coverity CIDs#32415,#26519 Resource leak
authorMarek Schimara <Marek.Schimara@bull.net>
Wed, 15 Jun 2016 11:26:55 +0000 (13:26 +0200)
committerMarek Schimara <Marek.Schimara@bull.net>
Thu, 23 Jun 2016 14:32:33 +0000 (16:32 +0200)
        CWE-404 / https://cwe.mitre.org/data/definitions/404.html

src/rrd_daemon.c

index 5068f7903a4d71f44c4ebd1a3df68aa5ee02db6e..9041a193ef86e539239a43a8c10155e418c58fbc 100644 (file)
@@ -485,13 +485,23 @@ static int open_pidfile(char *action, int oflag) /* {{{ */
   }
 
   dir = strdup(dirname(file_copy));
+  if (dir == NULL)
+  {
+    fprintf(stderr, "rrdcached: strdup(): %s\n",
+        rrd_strerror(errno));
+    free(file_copy);
+    return -1;
+  }
   if (rrd_mkdir_p(dir, 0777) != 0)
   {
     fprintf(stderr, "Failed to create pidfile directory '%s': %s\n",
         dir, rrd_strerror(errno));
+    free(dir);
+    free(file_copy);
     return -1;
   }
 
+  free(dir);
   free(file_copy);
 
   fd = open(file, oflag, S_IWUSR|S_IRUSR|S_IRGRP|S_IROTH);