From: "Dr. David Alan Gilbert" <dgilb...@redhat.com> 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ärber <afaer...@suse.de> Updated for changed interface: Signed-off-by: Dr. David Alan Gilbert <dgilb...@redhat.com> --- 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 @@ #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)); } +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 = end_list; v->visitor.complete = string_output_complete; v->visitor.free = string_output_free; + v->visitor.start_struct = start_struct; + v->visitor.end_struct = end_struct; return &v->visitor; } -- 2.7.4