Commit e36c714e causes 'qemu -netdev ?' to dump core, because the
call to visit_end_union() is no longer conditional on whether
*obj was allocated.

Reported by Marc-AndrĂ© Lureau <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
---
 scripts/qapi-visit.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
index 9e99c3a..74748a2 100644
--- a/scripts/qapi-visit.py
+++ b/scripts/qapi-visit.py
@@ -297,7 +297,9 @@ void visit_type_%(c_name)s(Visitor *v, %(c_name)s **obj, 
const char *name, Error
 out_obj:
     error_propagate(errp, err);
     err = NULL;
-    visit_end_union(v, !!(*obj)->u.data, &err);
+    if (*obj) {
+        visit_end_union(v, !!(*obj)->u.data, &err);
+    }
     error_propagate(errp, err);
     err = NULL;
     visit_end_struct(v, &err);
-- 
2.4.3


Reply via email to