Eduardo Habkost c3481247e5 qmp: object-add: Validate class before creating object
Currently it is very easy to crash QEMU by issuing an object-add command
using an abstract class or a class that doesn't support
TYPE_USER_CREATABLE as parameter.

Example: with the following QMP command:

    (QEMU) object-add qom-type=cpu id=foo

QEMU aborts at:

    ERROR:qom/object.c:335:object_initialize_with_type: assertion failed: (type->abstract == false)

This patch moves the check for TYPE_USER_CREATABLE before object_new(),
and adds a check to prevent the code from trying to instantiate abstract
classes.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Matthew Rosato <mjrosato@linux.vnet.ibm.com>
Tested-by: Matthew Rosato <mjrosato@linux.vnet.ibm.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-04-25 11:08:34 -04:00
2014-04-23 10:28:14 +02:00
2013-04-18 13:50:53 +02:00
2014-04-25 09:19:59 -04:00
2013-08-07 12:48:00 -05:00
2014-04-25 09:19:58 -04:00
2014-04-24 15:24:52 +01:00
2014-04-25 09:19:58 -04:00
2014-04-25 09:19:59 -04:00
2012-09-07 09:02:44 +03:00
2014-03-12 17:26:32 +01:00
2013-09-05 09:40:31 -05:00
2013-10-11 09:34:56 -07:00
2008-10-12 17:54:42 +00:00
2014-03-19 19:47:15 +01:00
2013-07-23 02:41:31 +02:00
2013-02-21 16:17:31 -06:00
2013-08-12 09:15:12 -05:00
2014-04-07 10:50:30 +02:00
2014-03-13 14:42:24 +01:00
2013-09-03 12:25:55 +02:00
2014-03-27 15:19:00 +05:30
2014-02-21 21:02:23 +01:00
2014-03-13 14:34:16 +00:00
2014-02-25 14:30:28 +01:00
2014-04-18 10:33:36 +04:00
2014-03-27 15:19:00 +05:30
2014-04-22 13:47:46 +02:00
2014-04-22 12:00:20 +02:00
2014-04-22 12:00:20 +02:00
2013-12-04 15:19:00 +01:00
2014-04-18 10:33:36 +04:00
2014-03-05 03:06:24 +01:00
2013-10-11 09:34:56 -07:00
2014-02-17 11:57:23 -05:00
2014-04-23 10:28:14 +02:00
2014-04-17 20:39:32 +01:00
2013-10-11 09:34:56 -07:00
2014-03-27 15:19:00 +05:30
2013-04-08 18:13:10 +02:00

Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org

- QEMU team
Description
No description provided
Readme 431 MiB
Languages
C 82.9%
C++ 6.4%
Python 3.2%
Dylan 2.9%
Shell 1.6%
Other 2.8%