From: Daniel P. Berrange Date: Wed, 13 Mar 2013 17:39:52 +0000 (+0000) Subject: Fix memory leak on OOM in virSecuritySELinuxMCSFind X-Git-Tag: v1.0.4-rc1~101 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f2d8190cfb8e52b006a5cfd080b42d2a1755fd28;p=thirdparty%2Flibvirt.git Fix memory leak on OOM in virSecuritySELinuxMCSFind The body of the loop in virSecuritySELinuxMCSFind would directly 'return NULL' on OOM, instead of jumping to the cleanup label. This caused a leak of several local vars. Signed-off-by: Daniel P. Berrange --- diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c index a042b26845..f1399af5ae 100644 --- a/src/security/security_selinux.c +++ b/src/security/security_selinux.c @@ -214,7 +214,7 @@ virSecuritySELinuxMCSFind(virSecurityManagerPtr mgr) if (c1 == c2) { if (virAsprintf(&mcs, "%s:c%d", sens, catMin + c1) < 0) { virReportOOMError(); - return NULL; + goto cleanup; } } else { if (c1 > c2) { @@ -224,7 +224,7 @@ virSecuritySELinuxMCSFind(virSecurityManagerPtr mgr) } if (virAsprintf(&mcs, "%s:c%d,c%d", sens, catMin + c1, catMin + c2) < 0) { virReportOOMError(); - return NULL; + goto cleanup; } }