qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 12/28] qapi: QmpInputVisitor, don't re-allocate memo


From: Michael Roth
Subject: [Qemu-devel] [PATCH 12/28] qapi: QmpInputVisitor, don't re-allocate memory in start_struct
Date: Wed, 31 Oct 2012 17:35:56 -0500

If we're given a pointer that has already be initialized to a non-NULL
value, don't attempt to allocate memory for the object as we'll likely
clobber something we weren't supposed to.

Also, fix up a check in the unit test that may fail as a result of this
change do to it not initializing the object to NULL before-hand and thus
depending on this behavior to clobber a potentially garbage ptr value.

This is needed to handle embedded/non-pointer struct fields.

Signed-off-by: Michael Roth <address@hidden>
---
 qapi/qmp-input-visitor.c       |    2 +-
 tests/test-qmp-input-visitor.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/qapi/qmp-input-visitor.c b/qapi/qmp-input-visitor.c
index 635106e..c4388f3 100644
--- a/qapi/qmp-input-visitor.c
+++ b/qapi/qmp-input-visitor.c
@@ -132,7 +132,7 @@ static void qmp_input_start_struct(Visitor *v, void **obj, 
const char *kind,
         return;
     }
 
-    if (obj) {
+    if (obj && *obj == NULL) {
         *obj = g_malloc0(size);
     }
 }
diff --git a/tests/test-qmp-input-visitor.c b/tests/test-qmp-input-visitor.c
index 8f5a509..58e04f1 100644
--- a/tests/test-qmp-input-visitor.c
+++ b/tests/test-qmp-input-visitor.c
@@ -247,7 +247,7 @@ static void test_visitor_in_union(TestInputVisitorData 
*data,
 {
     Visitor *v;
     Error *err = NULL;
-    UserDefUnion *tmp;
+    UserDefUnion *tmp = NULL;
 
     v = visitor_input_test_init(data, "{ 'type': 'b', 'data' : { 'integer': 42 
} }");
 
-- 
1.7.9.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]