]> git.ipfire.org Git - thirdparty/rrdtool-1.x.git/commitdiff
src/rrd_client.c: fix Coverity CID#17400 Resource leak
authorMarek Schimara <Marek.Schimara@bull.net>
Fri, 17 Jun 2016 06:44:29 +0000 (08:44 +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

        + possible segfault when accessing res->message and res == NULL

src/rrd_client.c

index f290c2c00d0020dfdfd038808557d7cd35536ab1..b6ee4b117c0302c5ed74d41dd5433ee286b3a7c2 100644 (file)
@@ -1073,7 +1073,10 @@ rrd_info_t * rrdc_info (const char *filename) /* {{{ */
   mutex_unlock (&lock);
 
   if (status != 0) {
-    rrd_set_error ("rrdcached: %s", res->message);
+    if (res && res->message) {
+      rrd_set_error ("rrdcached: %s", res->message);
+      response_free(res);
+    }
     return (NULL);
   }
   data = cd = NULL;
@@ -1105,11 +1108,13 @@ rrd_info_t * rrdc_info (const char *filename) /* {{{ */
         rrd_set_error ("rrdc_info: BLOB objects are not supported");
         if (cd && cd != data) free(cd);
         if (data) free(data);
+        response_free(res);
         return (NULL);
     default:
         rrd_set_error ("rrdc_info: Unsupported info type %d",itype);
         if (cd && cd != data) free(cd);
         if (data) free(data);
+        response_free(res);
         return (NULL);
     }