From: John Ferlan Date: Fri, 12 May 2017 10:46:20 +0000 (-0400) Subject: conf: Fix resource leak in virCapabilitiesInitCaches X-Git-Tag: v3.4.0-rc1~125 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d6128618e48911240ecf07da99208301c7471fa6;p=thirdparty%2Flibvirt.git conf: Fix resource leak in virCapabilitiesInitCaches The @type from virFileReadValueString needs to be VIR_FREE each time through the loop since it's not saved and since cleanup can be reached prior to decoding it for @kernel_type amd bank->type, the cleanup code needs to also have a VIR_FREE Found by Coverity --- diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index c36ca40889..d699b08173 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -1611,10 +1611,10 @@ virCapabilitiesInitCaches(virCapsPtr caps) if (kernel_type < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Unknown cache type '%s'"), type); - VIR_FREE(type); goto cleanup; } bank->type = kernel_type; + VIR_FREE(type); for (i = 0; i < caps->host.ncaches; i++) { if (virCapsHostCacheBankEquals(bank, caps->host.caches[i])) @@ -1637,6 +1637,7 @@ virCapabilitiesInitCaches(virCapsPtr caps) ret = 0; cleanup: + VIR_FREE(type); VIR_FREE(path); virDirClose(&dirp); virCapsHostCacheBankFree(bank);