]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: plug memory leak
authorEric Blake <eblake@redhat.com>
Tue, 30 Nov 2010 16:00:30 +0000 (09:00 -0700)
committerEric Blake <eblake@redhat.com>
Wed, 1 Dec 2010 17:00:10 +0000 (10:00 -0700)
* src/qemu/qemu_driver.c (qemudShutdown): Free all strings and the
ebtables structure.
* src/libvirt_private.syms (ebtablesContextFree): Export missing
symbol.
* src/util/ebtables.c (ebtablesContextFree): Allow early exit.

src/libvirt_private.syms
src/qemu/qemu_driver.c
src/util/ebtables.c

index 3c1c823d44c59f0160f2d2b44748adb3af5303c7..f251c94345d45b2026d528cd1b3ca3b48e90f5b0 100644 (file)
@@ -326,6 +326,7 @@ virDomainConfVMNWFilterTeardown;
 # ebtables.h
 ebtablesAddForwardAllowIn;
 ebtablesAddForwardPolicyReject;
+ebtablesContextFree;
 ebtablesContextNew;
 ebtablesRemoveForwardAllowIn;
 
index 73b1e3ff8192b786ab55a17ef278e37efaf1d570..853995c43749816486aec4883709a7cd7bc1ed4f 100644 (file)
@@ -2069,10 +2069,9 @@ qemudShutdown(void) {
 
     virSysinfoDefFree(qemu_driver->hostsysinfo);
 
-    VIR_FREE(qemu_driver->securityDriverName);
-    VIR_FREE(qemu_driver->logDir);
     VIR_FREE(qemu_driver->configDir);
     VIR_FREE(qemu_driver->autostartDir);
+    VIR_FREE(qemu_driver->logDir);
     VIR_FREE(qemu_driver->stateDir);
     VIR_FREE(qemu_driver->libDir);
     VIR_FREE(qemu_driver->cacheDir);
@@ -2082,9 +2081,16 @@ qemudShutdown(void) {
     VIR_FREE(qemu_driver->vncListen);
     VIR_FREE(qemu_driver->vncPassword);
     VIR_FREE(qemu_driver->vncSASLdir);
-    VIR_FREE(qemu_driver->saveImageFormat);
+    VIR_FREE(qemu_driver->spiceTLSx509certdir);
+    VIR_FREE(qemu_driver->spiceListen);
+    VIR_FREE(qemu_driver->spicePassword);
     VIR_FREE(qemu_driver->hugetlbfs_mount);
     VIR_FREE(qemu_driver->hugepage_path);
+    VIR_FREE(qemu_driver->securityDriverName);
+    VIR_FREE(qemu_driver->saveImageFormat);
+    VIR_FREE(qemu_driver->dumpImageFormat);
+
+    ebtablesContextFree(qemu_driver->ebtables);
 
     if (qemu_driver->cgroupDeviceACL) {
         for (i = 0 ; qemu_driver->cgroupDeviceACL[i] != NULL ; i++)
index f707756e4bae7cfb3ae75197245b1866356ac448..e3b8da4dbdbfd4bc161f77a2bede0c4df4be828b 100644 (file)
@@ -300,6 +300,8 @@ ebtablesContextNew(const char *driver)
 void
 ebtablesContextFree(ebtablesContext *ctx)
 {
+    if (!ctx)
+        return;
     if (ctx->input_filter)
         ebtRulesFree(ctx->input_filter);
     if (ctx->forward_filter)