[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/3] qapi: return a 'missing parameter' error
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH 1/3] qapi: return a 'missing parameter' error |
Date: |
Thu, 22 Sep 2016 13:02:57 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Marc-André Lureau <address@hidden> 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().
[...]
[Qemu-devel] [PATCH 3/3] iotests: fix expected error message, Marc-André Lureau, 2016/09/21