From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53776) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcr6C-00075k-4R for qemu-devel@nongnu.org; Thu, 25 Aug 2016 05:37:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bcr67-00053w-6k for qemu-devel@nongnu.org; Thu, 25 Aug 2016 05:37:24 -0400 Received: from mx1.redhat.com ([209.132.183.28]:51244) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcr67-00053l-10 for qemu-devel@nongnu.org; Thu, 25 Aug 2016 05:37:19 -0400 From: "Dr. David Alan Gilbert (git)" Date: Thu, 25 Aug 2016 10:37:12 +0100 Message-Id: <1472117833-10236-2-git-send-email-dgilbert@redhat.com> In-Reply-To: <1472117833-10236-1-git-send-email-dgilbert@redhat.com> References: <1472117833-10236-1-git-send-email-dgilbert@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH 1/2] qapi: Stub out StringOutputVisitor struct support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, lcapitulino@redhat.com, afaerber@suse.de, armbru@redhat.com Cc: pbonzini@redhat.com, arei.gonglei@huawei.com, kwolf@redhat.com From: "Dr. David Alan Gilbert" Avoid a segfault when visiting, e.g., the QOM rtc-time property, by implementing the struct callbacks and raising an Error. Signed-off-by: Andreas F=C3=A4rber Updated for changed interface: Signed-off-by: Dr. David Alan Gilbert --- qapi/string-output-visitor.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/qapi/string-output-visitor.c b/qapi/string-output-visitor.c index 94ac821..4e7e97f 100644 --- a/qapi/string-output-visitor.c +++ b/qapi/string-output-visitor.c @@ -12,6 +12,7 @@ =20 #include "qemu/osdep.h" #include "qemu-common.h" +#include "qapi/error.h" #include "qapi/string-output-visitor.h" #include "qapi/visitor-impl.h" #include "qemu/host-utils.h" @@ -266,6 +267,16 @@ static void print_type_number(Visitor *v, const char= *name, double *obj, string_output_set(sov, g_strdup_printf("%f", *obj)); } =20 +static void start_struct(Visitor *v, const char *name, void **obj, size_= t size, + Error **errp) +{ + error_setg(errp, "struct type not implemented"); +} + +static void end_struct(Visitor *v, void **obj) +{ +} + static void start_list(Visitor *v, const char *name, GenericList **list, size_t size= , Error **errp) @@ -356,6 +367,8 @@ Visitor *string_output_visitor_new(bool human, char *= *result) v->visitor.end_list =3D end_list; v->visitor.complete =3D string_output_complete; v->visitor.free =3D string_output_free; + v->visitor.start_struct =3D start_struct; + v->visitor.end_struct =3D end_struct; =20 return &v->visitor; } --=20 2.7.4