[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v1 1/1] qom/object: Don't poll cast cache for NULL o
From: |
peter . crosthwaite |
Subject: |
[Qemu-devel] [PATCH v1 1/1] qom/object: Don't poll cast cache for NULL objects |
Date: |
Tue, 21 May 2013 16:05:08 +1000 |
From: Peter Crosthwaite <address@hidden>
object_dymamic_cast_assert used to be tolerant of NULL objects and not
assert. Its clear from the implementation that this is the expected
behavior.
The preceding check of the cast cache dereferences obj however causing
a segfault. Fix by conditionalizing the cast cache logic on obj being
non-null.
Signed-off-by: Peter Crosthwaite <address@hidden>
---
qom/object.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/qom/object.c b/qom/object.c
index ec88231..803b94b 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -442,7 +442,7 @@ Object *object_dynamic_cast_assert(Object *obj, const char
*typename,
int i;
Object *inst;
- for (i = 0; i < OBJECT_CLASS_CAST_CACHE; i++) {
+ for (i = 0; obj && i < OBJECT_CLASS_CAST_CACHE; i++) {
if (obj->class->cast_cache[i] == typename) {
goto out;
}
@@ -458,7 +458,7 @@ Object *object_dynamic_cast_assert(Object *obj, const char
*typename,
assert(obj == inst);
- if (obj == inst) {
+ if (obj && obj == inst) {
for (i = 1; i < OBJECT_CLASS_CAST_CACHE; i++) {
obj->class->cast_cache[i - 1] = obj->class->cast_cache[i];
}
--
1.8.3.rc1.44.gb387c77.dirty
- [Qemu-devel] [PATCH v1 1/1] qom/object: Don't poll cast cache for NULL objects,
peter . crosthwaite <=