aboutsummaryrefslogtreecommitdiff
path: root/qdev-monitor.c
diff options
context:
space:
mode:
authorIgor Mammedov <imammedo@redhat.com>2013-09-17 15:32:32 +0200
committerAndreas Färber <afaerber@suse.de>2013-11-05 17:47:30 +0100
commit2fa4e56d88aa0039062bbc7f9a88e9f90c77ed94 (patch)
tree113e70dbe0987e1b6229f1f6e9bb50ed088b3c22 /qdev-monitor.c
parentf4d85795605c7dc594c013221a4b6d62967bd8ab (diff)
qdev-monitor: Fix crash when device_add is called with abstract driver
User is able to crash running QEMU when following monitor command is called: device_add intel-hda-generic Crash is caused by assertion in object_initialize_with_type() when type is abstract. Checking if type is abstract before instance is created in qdev_device_add() allows to prevent crash on incorrect user input. Cc: qemu-stable@nongnu.org Signed-off-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
Diffstat (limited to 'qdev-monitor.c')
-rw-r--r--qdev-monitor.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/qdev-monitor.c b/qdev-monitor.c
index 8f9f6cb45f..753bab7545 100644
--- a/qdev-monitor.c
+++ b/qdev-monitor.c
@@ -481,6 +481,12 @@ DeviceState *qdev_device_add(QemuOpts *opts)
return NULL;
}
+ if (object_class_is_abstract(oc)) {
+ qerror_report(QERR_INVALID_PARAMETER_VALUE, "driver",
+ "non-abstract device type");
+ return NULL;
+ }
+
dc = DEVICE_CLASS(oc);
/* find bus */