From: John Ferlan Date: Wed, 14 Nov 2018 19:01:06 +0000 (-0500) Subject: util: Fix memory leak in virResctrlMonitorGetStats X-Git-Tag: v4.10.0-rc1~97 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=96f4c12d54347e60308e8270ca3bcf7b72d391e1;p=thirdparty%2Flibvirt.git util: Fix memory leak in virResctrlMonitorGetStats Missed during review and surprisingly my run through Coverity also didn't see this. I only noticed it when reading the code while fixing the build breaker for commit 36780a86a. With all those continues we would leak @stats. Signed-off-by: John Ferlan --- diff --git a/src/util/virresctrl.c b/src/util/virresctrl.c index ef5c668921..7aeca9d287 100644 --- a/src/util/virresctrl.c +++ b/src/util/virresctrl.c @@ -2684,9 +2684,6 @@ virResctrlMonitorGetStats(virResctrlMonitorPtr monitor, while (virDirRead(dirp, &ent, datapath) > 0) { char *node_id = NULL; - if (VIR_ALLOC(stat) < 0) - goto cleanup; - /* Looking for directory that contains resource utilization * information file. The directory name is arranged in format * "mon__". For example, "mon_L3_00" and @@ -2709,6 +2706,9 @@ virResctrlMonitorGetStats(virResctrlMonitorPtr monitor, if (!(node_id = STRSKIP(node_id, "_"))) continue; + if (VIR_ALLOC(stat) < 0) + goto cleanup; + /* The node ID number should be here, parsing it. */ if (virStrToLong_uip(node_id, NULL, 0, &stat->id) < 0) goto cleanup;