]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virSecuritySELinuxMCSFind: Refactor variable clearing
authorPeter Krempa <pkrempa@redhat.com>
Mon, 19 May 2025 13:24:34 +0000 (15:24 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 22 Jul 2025 14:52:34 +0000 (16:52 +0200)
Use automatic freeing for 'mcs' and adjust the code.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/security/security_selinux.c

index 0326073810a0f907acea842468eb3a1ebe50bb88..28ac1366357a5a5b2888b4de57782359ee9b7963 100644 (file)
@@ -398,7 +398,6 @@ virSecuritySELinuxMCSFind(virSecurityManager *mgr,
 {
     virSecuritySELinuxData *data = virSecurityManagerGetPrivateData(mgr);
     int catRange;
-    char *mcs = NULL;
 
     /* +1 since virRandomInt range is exclusive of the upper bound */
     catRange = (catMax - catMin) + 1;
@@ -416,6 +415,7 @@ virSecuritySELinuxMCSFind(virSecurityManager *mgr,
     for (;;) {
         int c1 = virRandomInt(catRange);
         int c2 = virRandomInt(catRange);
+        g_autofree char *mcs = NULL;
 
         VIR_DEBUG("Try cat %s:c%d,c%d", sens, c1 + catMin, c2 + catMin);
 
@@ -439,12 +439,10 @@ virSecuritySELinuxMCSFind(virSecurityManager *mgr,
         }
 
         if (virHashLookup(data->mcs, mcs) == NULL)
-            break;
-
-        VIR_FREE(mcs);
+            return g_steal_pointer(&mcs);
     }
 
-    return mcs;
+    return NULL;
 }