summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaine Stump <laine@laine.org>2014-05-01 11:40:41 +0300
committerLaine Stump <laine@laine.org>2014-05-01 16:03:24 +0300
commit8ff53ba99124a1910541fd200ddff23fe972a5fe (patch)
treeea0b2f5220c8f9821a45a038bec254930c1d026e
parent796ef25c33a956303332582549e83c5111a21fb4 (diff)
downloadlibvirt-8ff53ba99124a1910541fd200ddff23fe972a5fe.tar.gz
qemu: fix crash when removing <filterref> from interface with update-device
If a domain network interface that contains a <filterref> is modified "live" using "virsh update-device --live", libvirtd would crash. This was because the code supporting live update of an interface's filterref was assuming that a filterref might be added or modified, but didn't account for removing the filterref, resulting in a null dereference of the filter name. Introduced with commit 258fb278, which was first in libvirt v1.0.1. This addresses https://bugzilla.redhat.com/show_bug.cgi?id=1093301 (cherry picked from commit 0eac9d1e90fc3388030c6109aeb1f4860f108054)
-rw-r--r--src/qemu/qemu_hotplug.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 29a0573caf..5588f52f9b 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1372,7 +1372,8 @@ qemuDomainChangeNetFilter(virConnectPtr conn,
virDomainConfNWFilterTeardown(olddev);
- if (virDomainConfNWFilterInstantiate(conn, vm->def->uuid, newdev) < 0) {
+ if (newdev->filter &&
+ virDomainConfNWFilterInstantiate(conn, vm->def->uuid, newdev) < 0) {
virErrorPtr errobj;
virReportError(VIR_ERR_OPERATION_FAILED,