From c060e400d95c17f1bee8ee34066c6b9219566385 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Tue, 21 Aug 2018 13:46:18 +0200 Subject: [PATCH] virSecurityManagerNewDriver: Fix code pattern Use 'error' label to free allocated memory. Signed-off-by: Michal Privoznik Reviewed-by: John Ferlan --- src/security/security_manager.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/security/security_manager.c b/src/security/security_manager.c index df7ffa84aa..e1b571ea52 100644 --- a/src/security/security_manager.c +++ b/src/security/security_manager.c @@ -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; } -- GitLab