From: Marek Schimara Date: Fri, 17 Jun 2016 06:44:29 +0000 (+0200) Subject: src/rrd_client.c: fix Coverity CID#17400 Resource leak X-Git-Tag: v1.7.0~42^2~22 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6943904c16a806bed98cea6895f99b0781d6693a;p=thirdparty%2Frrdtool-1.x.git src/rrd_client.c: fix Coverity CID#17400 Resource leak CWE-404 / https://cwe.mitre.org/data/definitions/404.html + possible segfault when accessing res->message and res == NULL --- diff --git a/src/rrd_client.c b/src/rrd_client.c index f290c2c0..b6ee4b11 100644 --- a/src/rrd_client.c +++ b/src/rrd_client.c @@ -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); }