Commit ce0abca3 authored by Amos Kong's avatar Amos Kong Committed by Andreas Färber
Browse files

qdev: Fix crash by validating the object type



QEMU crashed when I try to list device parameters and the driver name is
actually an available bus name.

 # qemu -device virtio-pci-bus,?
 # qemu -device virtio-bus,?
 # qemu -device virtio-serial-bus,?
 qdev-monitor.c:212:qdev_device_help: Object 0x7fd932f50620 is not an
 instance of type device
 Aborted (core dumped)

We can also reproduce this bug by adding device from monitor, so it's
worth to fix the crash.

 (qemu) device_add virtio-serial-bus
 qdev-monitor.c:491:qdev_device_add: Object 0x7f5e89530920 is not an
 instance of type device
 Aborted (core dumped)

Cc: qemu-stable@nongnu.org
Signed-off-by: default avatarAmos Kong <akong@redhat.com>
Reviewed-by: default avatarMarkus Armbruster <armbru@redhat.com>
Signed-off-by: default avatarAndreas Färber <afaerber@suse.de>
parent fdaad471
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -206,7 +206,7 @@ int qdev_device_help(QemuOpts *opts)
        }
    }

    if (!klass) {
    if (!object_class_dynamic_cast(klass, TYPE_DEVICE)) {
        return 0;
    }
    do {