[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 11/26] qapi: QmpInputVisitor, don't re-allocate memo
From: |
Michael Roth |
Subject: |
[Qemu-devel] [PATCH 11/26] qapi: QmpInputVisitor, don't re-allocate memory in start_struct |
Date: |
Thu, 18 Oct 2012 21:42:05 -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
- [Qemu-devel] [PATCH 01/26] qapi: qapi-visit.py -> qapi_visit.py so we can import, (continued)
- [Qemu-devel] [PATCH 01/26] qapi: qapi-visit.py -> qapi_visit.py so we can import, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 02/26] qapi: qapi-types.py -> qapi_types.py, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 03/26] qapi: qapi-commands.py -> qapi_commands.py, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 04/26] qapi: qapi_visit.py, make code useable as module, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 05/26] qapi: qapi_visit.py, support arrays and complex qapi definitions, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 06/26] qapi: qapi_visit.py, support generating static functions, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 07/26] qapi: qapi_visit.py, support for visiting non-pointer/embedded structs, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 08/26] qapi: add visitor interfaces for C arrays, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 09/26] qapi: QmpOutputVisitor, implement array handling, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 10/26] qapi: QmpInputVisitor, implement array handling, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 11/26] qapi: QmpInputVisitor, don't re-allocate memory in start_struct,
Michael Roth <=
- [Qemu-devel] [PATCH 12/26] qapi: fix potential segfault for visit_type_size(), Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 13/26] qapi: ordereddict, add to_json() method, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 15/26] qapi: add open-coded visitor for struct tm types, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 14/26] qapi: qapi.py, make json parser more robust, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 17/26] qom-fuse: force single-threaded mode to avoid QMP races, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 19/26] module additions for schema registration, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 18/26] qom-fuse: workaround for truncated properties > 4096, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 16/26] qapi: Improve existing docs and document annotated QAPI types, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 21/26] qidl: add documentation, Michael Roth, 2012/10/18
- [Qemu-devel] [PATCH 23/26] qidl: add C parser (based on QC parser), Michael Roth, 2012/10/18