[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 1/3] qom: Don't keep error value between obje
From: |
Marc-André Lureau |
Subject: |
Re: [Qemu-devel] [PATCH v2 1/3] qom: Don't keep error value between object_property_parse() calls |
Date: |
Thu, 10 Jan 2019 12:30:18 +0400 |
On Thu, Jan 10, 2019 at 6:04 AM Eduardo Habkost <address@hidden> wrote:
>
> When handling errp==NULL at object_apply_global_props(), we are
> leaving the old error value in `err` after printing a warning.
> This makes QEMU crash if two global properties generate warnings:
>
> $ echo device_add rtl8139 | qemu-system-x86_64 -monitor stdio -global
> rtl8139.xxx=yyy -global rtl8139.xxx=zzz
> warning: can't apply global rtl8139.xxx=yyy: Property '.xxx' not found
> qemu-system-x86_64: util/error.c:57: error_setv: Assertion `*errp == NULL'
> failed.
> Aborted (core dumped)
>
> Fix that by making `err` go out of scope immediately after the
> warn_report_err() call.
>
> Fixes: 50545b2cc029 "qdev-props: call object_apply_global_props()"
> Signed-off-by: Eduardo Habkost <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
> ---
> qom/object.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/qom/object.c b/qom/object.c
> index aa6f3a2a71..4e5226ca12 100644
> --- a/qom/object.c
> +++ b/qom/object.c
> @@ -372,7 +372,6 @@ static void object_post_init_with_type(Object *obj,
> TypeImpl *ti)
>
> void object_apply_global_props(Object *obj, const GPtrArray *props, Error
> **errp)
> {
> - Error *err = NULL;
> int i;
>
> if (!props) {
> @@ -381,6 +380,7 @@ void object_apply_global_props(Object *obj, const
> GPtrArray *props, Error **errp
>
> for (i = 0; i < props->len; i++) {
> GlobalProperty *p = g_ptr_array_index(props, i);
> + Error *err = NULL;
>
> if (object_dynamic_cast(obj, p->driver) == NULL) {
> continue;
> --
> 2.18.0.rc1.1.g3f1ff2140
>
>
--
Marc-André Lureau
- [Qemu-devel] [PATCH v2 0/3] Fix virtio-*(-non)-transitional crash on 2.6 machine-types, Eduardo Habkost, 2019/01/09
- [Qemu-devel] [PATCH v2 1/3] qom: Don't keep error value between object_property_parse() calls, Eduardo Habkost, 2019/01/09
- [Qemu-devel] [PATCH v2 2/3] globals: Allow global properties to be optional, Eduardo Habkost, 2019/01/09
- [Qemu-devel] [PATCH v2 3/3] virtio: Make disable-legacy/disable-modern compat properties optional, Eduardo Habkost, 2019/01/09
- Re: [Qemu-devel] [PATCH v2 3/3] virtio: Make disable-legacy/disable-modern compat properties optional, Marc-André Lureau, 2019/01/10
- Re: [Qemu-devel] [PATCH v2 3/3] virtio: Make disable-legacy/disable-modern compat properties optional, Dr. David Alan Gilbert, 2019/01/10
- Re: [Qemu-devel] [PATCH v2 3/3] virtio: Make disable-legacy/disable-modern compat properties optional, Eduardo Habkost, 2019/01/10
- Re: [Qemu-devel] [PATCH v2 3/3] virtio: Make disable-legacy/disable-modern compat properties optional, Michael S. Tsirkin, 2019/01/10
- Re: [Qemu-devel] [PATCH v2 3/3] virtio: Make disable-legacy/disable-modern compat properties optional, Dr. David Alan Gilbert, 2019/01/10
- Re: [Qemu-devel] [PATCH v2 3/3] virtio: Make disable-legacy/disable-modern compat properties optional, Eduardo Habkost, 2019/01/10