summary refs log tree commit diff stats
path: root/qom/object.c
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2013-04-30 15:02:16 +0200
committerAnthony Liguori <aliguori@us.ibm.com>2013-04-30 09:40:11 -0500
commit9ab880b3a2f4b80bd5d8b18a312b3afed65dc036 (patch)
tree1b06a72abee6ccbffdaa2d875f7d4664201ea73d /qom/object.c
parentb7da6c60814a5c8703e9fa0d943ec3240e9d94ab (diff)
downloadfocaccia-qemu-9ab880b3a2f4b80bd5d8b18a312b3afed65dc036.tar.gz
focaccia-qemu-9ab880b3a2f4b80bd5d8b18a312b3afed65dc036.zip
QOM: Fail casts for unknown types
When we try to cast an object to an unknown type, fail the cast. Today
we would simply run into an assert().

This fixes a bug on qemu-system-s390x for me that gets triggered by the
audio code looking for PCI and ISA buses.

Signed-off-by: Alexander Graf <agraf@suse.de>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1367326936-28539-1-git-send-email-agraf@suse.de
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'qom/object.c')
-rw-r--r--qom/object.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/qom/object.c b/qom/object.c
index dd53d242a5..75e6aac15f 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -453,6 +453,11 @@ ObjectClass *object_class_dynamic_cast(ObjectClass *class,
     TypeImpl *type = class->type;
     ObjectClass *ret = NULL;
 
+    if (!target_type) {
+        /* target class type unknown, so fail the cast */
+        return NULL;
+    }
+
     if (type->class->interfaces &&
             type_is_ancestor(target_type, type_interface)) {
         int found = 0;