summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Mammedov <imammedo@redhat.com>2013-09-17 15:32:32 +0200
committerMichael Roth <mdroth@linux.vnet.ibm.com>2013-12-09 11:40:30 -0600
commit2cafbbf1e03b954dedd3643ab3a4ffe685a63ccf (patch)
tree7756e2628f1f34c1928042d3dcaefae10e03cad1
parent991a5f378261b759b2af2354703c504906418d35 (diff)
downloadqemu-2cafbbf1e03b954dedd3643ab3a4ffe685a63ccf.tar.gz
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> (cherry picked from commit 2fa4e56d88aa0039062bbc7f9a88e9f90c77ed94) Conflicts: qdev-monitor.c *updated to reflect different 1.6 variable names Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
-rw-r--r--qdev-monitor.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/qdev-monitor.c b/qdev-monitor.c
index 410cdcbe97..bb2e1b6ab9 100644
--- a/qdev-monitor.c
+++ b/qdev-monitor.c
@@ -472,6 +472,12 @@ DeviceState *qdev_device_add(QemuOpts *opts)
return NULL;
}
+ if (object_class_is_abstract(obj)) {
+ qerror_report(QERR_INVALID_PARAMETER_VALUE, "driver",
+ "non-abstract device type");
+ return NULL;
+ }
+
k = DEVICE_CLASS(obj);
/* find bus */