On 10/06/19 15:50, Igor Mammedov wrote: > QEMU will crash when device-memory-region-size property is read if > ms->device_memory > wasn't initialized yet. > > Crash can be reproduced with: > $QEMU -preconfig -qmp unix:qmp_socket,server,nowait & > ./scripts/qmp/qom-get -s qmp_socket /machine.device-memory-region-size > > Instead of crashing return 0 if ms->device_memory hasn't been initialized. > > Signed-off-by: Igor Mammedov <imamm...@redhat.com> > --- > v2: > add reproducer to commit message > (Markus Armbruster <arm...@redhat.com>) > > hw/i386/pc.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/hw/i386/pc.c b/hw/i386/pc.c > index edc240b..1b7ead9 100644 > --- a/hw/i386/pc.c > +++ b/hw/i386/pc.c > @@ -2459,7 +2459,11 @@ pc_machine_get_device_memory_region_size(Object *obj, > Visitor *v, > Error **errp) > { > MachineState *ms = MACHINE(obj); > - int64_t value = memory_region_size(&ms->device_memory->mr); > + int64_t value = 0; > + > + if (ms->device_memory) { > + memory_region_size(&ms->device_memory->mr); > + } > > visit_type_int(v, name, &value, errp); > } >
Queued, thanks. Paolo