[libvirt] [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 0f25a2a..8b15a3e 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 79b3e1f..64f745a 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; } -- 1.7.4

On 02/21/2011 05:10 PM, Eric Blake wrote:
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 0f25a2a..8b15a3e 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 79b3e1f..64f745a 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; }
ACK.

On 02/22/2011 08:55 AM, Laine Stump wrote:
On 02/21/2011 05:10 PM, Eric Blake wrote:
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(-)
ACK.
Thanks; pushed. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org
participants (2)
-
Eric Blake
-
Laine Stump