Markus Armbruster <arm...@redhat.com> writes: > Marc-André Lureau <marcandre.lur...@redhat.com> writes: > >> Calling: >> >> { "execute": "qom-set", >> "arguments": { "path": "/machine", "property": "rtc-time" } } >> >> Will crash with: >> >> qapi/qapi-visit-core.c:277: visit_type_any: Assertion `!err != !*obj' >> failed > > This is actually a recent regression. Let's add "Broken in commit > 5c678ee." Can do on commit. > >> Clear the obj and return an error. >> >> The patch also fixes a similar potential crash in qmp_input_type_null() >> by checking qmp_input_get_object() returned a valid qobj. >> >> Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> >> Reviewed-by: Eric Blake <ebl...@redhat.com>
I'd like to rephrase like this, if it's all right with you: qapi: Fix crash when 'any' or 'null' parameter is missing Unlike the other visit methods, visit_type_any() and visit_type_null() neglect to check whether qmp_input_get_object() succeeded. They crash when it fails. Reproducer: { "execute": "qom-set", "arguments": { "path": "/machine", "property": "rtc-time" } } Will crash with: qapi/qapi-visit-core.c:277: visit_type_any: Assertion `!err != !*obj' failed Broken in commit 5c678ee. Fix by adding the missing error checks. Also: Reviewed-by: Markus Armbruster <arm...@redhat.com>