From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, peter.maydell@linaro.org, aliguori@us.ibm.com,
blauwirbel@gmail.com, pbonzini@redhat.com
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 [thread overview]
Message-ID: <1350614540-28583-12-git-send-email-mdroth@linux.vnet.ibm.com> (raw)
In-Reply-To: <1350614540-28583-1-git-send-email-mdroth@linux.vnet.ibm.com>
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 <mdroth@linux.vnet.ibm.com>
---
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
next prev parent reply other threads:[~2012-10-19 2:42 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-19 2:41 [Qemu-devel] [PATCH v5 00/26] Add infrastructure for QIDL-based device serialization Michael Roth
2012-10-19 2:41 ` [Qemu-devel] [PATCH 01/26] qapi: qapi-visit.py -> qapi_visit.py so we can import Michael Roth
2012-10-19 2:41 ` [Qemu-devel] [PATCH 02/26] qapi: qapi-types.py -> qapi_types.py Michael Roth
2012-10-19 2:41 ` [Qemu-devel] [PATCH 03/26] qapi: qapi-commands.py -> qapi_commands.py Michael Roth
2012-10-19 2:41 ` [Qemu-devel] [PATCH 04/26] qapi: qapi_visit.py, make code useable as module Michael Roth
2012-10-19 2:41 ` [Qemu-devel] [PATCH 05/26] qapi: qapi_visit.py, support arrays and complex qapi definitions Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 06/26] qapi: qapi_visit.py, support generating static functions Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 07/26] qapi: qapi_visit.py, support for visiting non-pointer/embedded structs Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 08/26] qapi: add visitor interfaces for C arrays Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 09/26] qapi: QmpOutputVisitor, implement array handling Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 10/26] qapi: QmpInputVisitor, " Michael Roth
2012-10-19 2:42 ` Michael Roth [this message]
2012-10-19 2:42 ` [Qemu-devel] [PATCH 12/26] qapi: fix potential segfault for visit_type_size() Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 13/26] qapi: ordereddict, add to_json() method Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 14/26] qapi: qapi.py, make json parser more robust Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 15/26] qapi: add open-coded visitor for struct tm types Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 16/26] qapi: Improve existing docs and document annotated QAPI types Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 17/26] qom-fuse: force single-threaded mode to avoid QMP races Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 18/26] qom-fuse: workaround for truncated properties > 4096 Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 19/26] module additions for schema registration Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 20/26] qdev: move Property-related declarations to qdev-properties.h Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 21/26] qidl: add documentation Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 22/26] qidl: add lexer library (based on QC parser) Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 23/26] qidl: add C parser " Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 24/26] qidl: add QAPI-based code generator Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 25/26] qidl: qidl.h, definitions for qidl annotations Michael Roth
2012-10-19 2:42 ` [Qemu-devel] [PATCH 26/26] qidl: unit tests and build infrastructure Michael Roth
2012-10-25 21:27 ` Michael Roth
2012-10-25 21:37 ` Michael Roth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1350614540-28583-12-git-send-email-mdroth@linux.vnet.ibm.com \
--to=mdroth@linux.vnet.ibm.com \
--cc=aliguori@us.ibm.com \
--cc=blauwirbel@gmail.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).