]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virSecuritySELinuxGenImageLabel: Refactor cleanup
authorPeter Krempa <pkrempa@redhat.com>
Fri, 18 Jul 2025 14:41:10 +0000 (16:41 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 22 Jul 2025 14:52:36 +0000 (16:52 +0200)
Automatically free temporary variables in order to remove 'cleanup'
section.

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

index b16ab14dfe812f926ae40a241921d3ed29c9ade2..9d14e33340637733d79c110e9f9a51334670efda 100644 (file)
@@ -3495,34 +3495,29 @@ virSecuritySELinuxGenImageLabel(virSecurityManager *mgr,
     virSecurityLabelDef *secdef;
     virSecuritySELinuxData *data = virSecurityManagerGetPrivateData(mgr);
     const char *range;
-    context_t ctx = NULL;
-    char *label = NULL;
-    char *mcs = NULL;
+    g_autoptr(context_s_t) ctx = NULL;
 
     secdef = virDomainDefGetSecurityLabelDef(def, SECURITY_SELINUX_NAME);
     if (secdef == NULL)
-        goto cleanup;
+        return NULL;
 
     if (secdef->label) {
         ctx = context_new(secdef->label);
         if (!ctx) {
             virReportSystemError(errno, _("unable to create selinux context for: %1$s"),
                                  secdef->label);
-            goto cleanup;
+            return NULL;
         }
         range = context_range_get(ctx);
         if (range) {
-            mcs = g_strdup(range);
-            if (!(label = virSecuritySELinuxGenNewContext(data->file_context,
-                                                          mcs, true)))
-                goto cleanup;
+            g_autofree char *mcs = g_strdup(range);
+
+            return virSecuritySELinuxGenNewContext(data->file_context,
+                                                   mcs, true);
         }
     }
 
- cleanup:
-    context_free(ctx);
-    VIR_FREE(mcs);
-    return label;
+    return NULL;
 }
 
 static char *