]> xenbits.xensource.com Git - libvirt.git/commitdiff
virSecurityManagerNewDriver: Fix code pattern
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 21 Aug 2018 11:46:18 +0000 (13:46 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Wed, 5 Sep 2018 08:58:05 +0000 (10:58 +0200)
Use 'error' label to free allocated memory.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
src/security/security_manager.c

index df7ffa84aafc78eec0b913d1b1f1d11e56891a6b..e1b571ea52b1e1d42fcb79b810c29d51a0a743cd 100644 (file)
@@ -73,8 +73,8 @@ virSecurityManagerNewDriver(virSecurityDriverPtr drv,
                             const char *virtDriver,
                             unsigned int flags)
 {
-    virSecurityManagerPtr mgr;
-    char *privateData;
+    virSecurityManagerPtr mgr = NULL;
+    char *privateData = NULL;
 
     if (virSecurityManagerInitialize() < 0)
         return NULL;
@@ -87,22 +87,22 @@ virSecurityManagerNewDriver(virSecurityDriverPtr drv,
     if (VIR_ALLOC_N(privateData, drv->privateDataLen) < 0)
         return NULL;
 
-    if (!(mgr = virObjectLockableNew(virSecurityManagerClass))) {
-        VIR_FREE(privateData);
-        return NULL;
-    }
+    if (!(mgr = virObjectLockableNew(virSecurityManagerClass)))
+        goto error;
 
     mgr->drv = drv;
     mgr->flags = flags;
     mgr->virtDriver = virtDriver;
-    mgr->privateData = privateData;
+    VIR_STEAL_PTR(mgr->privateData, privateData);
 
-    if (drv->open(mgr) < 0) {
-        virObjectUnref(mgr);
-        return NULL;
-    }
+    if (drv->open(mgr) < 0)
+        goto error;
 
     return mgr;
+ error:
+    VIR_FREE(privateData);
+    virObjectUnref(mgr);
+    return NULL;
 }