mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 06:50:22 +03:00
qemu: json: Fix daemon crash on handling domain shutdown event
commit a8eba5036 added further checking of the guest shutdown cause, but this enhancement is available since qemu 2.10, causing a crash because of a NULL pointer dereference on older qemus. Thread 1 "libvirtd" received signal SIGSEGV, Segmentation fault. 0x00007ffff72441af in virJSONValueObjectGet (object=0x0, key=0x7fffd5ef11bf "guest") at util/virjson.c:769 769 if (object->type != VIR_JSON_TYPE_OBJECT) (gdb) bt 0 in virJSONValueObjectGet 1 in virJSONValueObjectGetBoolean 2 in qemuMonitorJSONHandleShutdown 3 in qemuMonitorJSONIOProcessEvent 4 in qemuMonitorJSONIOProcessLine 5 in qemuMonitorJSONIOProcess 6 in qemuMonitorIOProcess Signed-off-by: Erik Skultety <eskultet@redhat.com>
This commit is contained in:
parent
4ae0f65669
commit
f9b69c8289
@ -528,7 +528,7 @@ static void qemuMonitorJSONHandleShutdown(qemuMonitorPtr mon, virJSONValuePtr da
|
||||
bool guest = false;
|
||||
virTristateBool guest_initiated = VIR_TRISTATE_BOOL_ABSENT;
|
||||
|
||||
if (virJSONValueObjectGetBoolean(data, "guest", &guest) == 0)
|
||||
if (data && virJSONValueObjectGetBoolean(data, "guest", &guest) == 0)
|
||||
guest_initiated = guest ? VIR_TRISTATE_BOOL_YES : VIR_TRISTATE_BOOL_NO;
|
||||
|
||||
qemuMonitorEmitShutdown(mon, guest_initiated);
|
||||
|
Loading…
x
Reference in New Issue
Block a user