virSecurityManagerNewDriver: Fix code pattern

Use 'error' label to free allocated memory.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
Michal Privoznik 2018-08-21 13:46:18 +02:00
parent 39015a6f3a
commit c060e400d9

View File

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