From d4e0e86c49ed4e6a8b9f88f7a81c38785942ed2a Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Wed, 13 Mar 2013 17:39:52 +0000 Subject: [PATCH] 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 (cherry picked from commit f2d8190cfb8e52b006a5cfd080b42d2a1755fd28) --- src/security/security_selinux.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c index b9f5a7b81b..9d13897d05 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; } }