[libvirt] [PATCH 1/3] Fix memory leak on OOM in virSecuritySELinuxMCSFind

Daniel P. Berrange berrange at redhat.com
Wed Mar 13 18:04:12 UTC 2013


From: "Daniel P. Berrange" <berrange at redhat.com>

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 <berrange at redhat.com>
---
 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 a042b26..f1399af 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;
             }
         }
 
-- 
1.8.1.4




More information about the libvir-list mailing list