render / rpms / libvirt

Forked from rpms/libvirt 9 months ago
Clone
Blob Blame History Raw
From ba585ed6cff624c6c0f1f9801382fd6846466ee0 Mon Sep 17 00:00:00 2001
From: Mark McLoughlin <markmc@redhat.com>
Date: Thu, 17 Sep 2009 15:31:08 +0100
Subject: [PATCH] Fix net/disk hot-unplug segfault

When we hot-unplug the last device, we're currently double-freeing
the device definition.

Reported by Michal Nowak here:

  https://bugzilla.redhat.com/523953

* src/qemu_driver.c: fix double free

(cherry-picked from commit 8881ae1bf8783006777429403cc543c33187175d)

Fedora-patch: libvirt-fix-net-hotunplug-double-free.patch
---
 src/qemu_driver.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/qemu_driver.c b/src/qemu_driver.c
index a65334f..de31581 100644
--- a/src/qemu_driver.c
+++ b/src/qemu_driver.c
@@ -5998,7 +5998,7 @@ try_command:
             /* ignore, harmless */
         }
     } else {
-        VIR_FREE(vm->def->disks[0]);
+        VIR_FREE(vm->def->disks);
         vm->def->ndisks = 0;
     }
     virDomainDiskDefFree(detach);
@@ -6100,7 +6100,7 @@ qemudDomainDetachNetDevice(virConnectPtr conn,
             /* ignore, harmless */
         }
     } else {
-        VIR_FREE(vm->def->nets[0]);
+        VIR_FREE(vm->def->nets);
         vm->def->nnets = 0;
     }
     virDomainNetDefFree(detach);
-- 
1.6.2.5