summary refs log tree commit diff stats
path: root/hw/qdev.c
diff options
context:
space:
mode:
authorAmit Shah <amit.shah@redhat.com>2009-11-02 14:56:41 +0530
committerAnthony Liguori <aliguori@us.ibm.com>2009-11-12 11:23:54 -0600
commit593831de5dce5f5b9ce1226e0d8353eecb1176e4 (patch)
treebbde500fae21a8563be891a4ef3b8cd7c5d2de46 /hw/qdev.c
parent88e2b0a5fd320f58f1a8aa1e19b502376854d879 (diff)
downloadfocaccia-qemu-593831de5dce5f5b9ce1226e0d8353eecb1176e4.tar.gz
focaccia-qemu-593831de5dce5f5b9ce1226e0d8353eecb1176e4.zip
qdev: Check if unplug handler exists before calling it
A bus may have hotplugging enabled but not have the 'unplug'
callback defined, which would lead to a crash on trying to
unplug a device on the bus.

Fix by introducing an assert to check if the callback is valid.

Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/qdev.c')
-rw-r--r--hw/qdev.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/qdev.c b/hw/qdev.c
index c7884d0e82..d19d531402 100644
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -258,6 +258,8 @@ int qdev_unplug(DeviceState *dev)
                    dev->parent_bus->name);
         return -1;
     }
+    assert(dev->info->unplug != NULL);
+
     return dev->info->unplug(dev);
 }