From 009fce98be95c1674a697b850157c59bacda3168 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Mon, 21 Feb 2011 15:05:24 -0700 Subject: [PATCH] security: avoid memory leak Leak introduced in commit d6623003. * src/qemu/qemu_driver.c (qemuSecurityInit): Avoid leak on failure. * src/security/security_stack.c (virSecurityStackClose): Avoid leaking component drivers. --- src/qemu/qemu_driver.c | 5 ++++- src/security/security_stack.c | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 0f25a2a9d9..8b15a3edb2 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -204,8 +204,11 @@ qemuSecurityInit(struct qemud_driver *driver) goto error; if (!(driver->securityManager = virSecurityManagerNewStack(mgr, - dac))) + dac))) { + + virSecurityManagerFree(dac); goto error; + } } else { driver->securityManager = mgr; } diff --git a/src/security/security_stack.c b/src/security/security_stack.c index 79b3e1f30f..64f745af88 100644 --- a/src/security/security_stack.c +++ b/src/security/security_stack.c @@ -61,8 +61,13 @@ virSecurityStackOpen(virSecurityManagerPtr mgr ATTRIBUTE_UNUSED) } static int -virSecurityStackClose(virSecurityManagerPtr mgr ATTRIBUTE_UNUSED) +virSecurityStackClose(virSecurityManagerPtr mgr) { + virSecurityStackDataPtr priv = virSecurityManagerGetPrivateData(mgr); + + virSecurityManagerFree(priv->primary); + virSecurityManagerFree(priv->secondary); + return 0; } -- GitLab