Marc-André Lureau <mlur...@redhat.com> writes: > Hi > > ----- Original Message ----- >> Aha, we got a different bug fix! The old code fails to fail when the >> parameter doesn't exist. Instead, it sets *obj = NULL, which seems very >> likely to crash QEMU. Let me try... yup: >> >> { "execute": "object-add", >> "arguments": { "qom-type": "memory-backend-file", "id": "foo" } } >> >> Kills QEMU with "qemu/qom/object_interfaces.c:115: user_creatable_add_type: >> Assertion `qdict' failed." >> >> Either fix this in a separate patch before this one, or cover it in this >> one's commit message. Your choice. >> >> A separate patch might be usable for qemu-stable. > > It looks to me that this is a different bug. > > visit_type_q_obj_object_add_arg_members() doesn't call visit_type_any() if > "props" is missing (it's optionnal). > > And arg is zero'ed in qmp-marshal, and the assert() was added in > ad739706bbadee49. I am trying to fix that regression.
Okay, that's *also* a bug. For the bug I spotted, try { "execute": "qom-set", "arguments": { "path": "/machine", "property": "rtc-time" } } Trips assert(!err != !*obj) in its caller visit_type_any(). [...]