From: Peter Krempa Date: Thu, 24 Jan 2019 08:49:26 +0000 (+0100) Subject: qemu: blockjob: Make sure that internal states are not reported as event X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=8d5df6444944ad67f7c59f6bfa9aff24537f8794;p=libvirt.git qemu: blockjob: Make sure that internal states are not reported as event While the callers should make sure that they don't call qemuBlockJobEmitEvents for any internal state or job, let's add checks that prevents us from emitting wrong events altogether. Signed-off-by: Peter Krempa Reviewed-by: John Ferlan --- diff --git a/src/qemu/qemu_blockjob.c b/src/qemu/qemu_blockjob.c index 9b638b7ef6..2f9f2b5b04 100644 --- a/src/qemu/qemu_blockjob.c +++ b/src/qemu/qemu_blockjob.c @@ -214,6 +214,11 @@ qemuBlockJobEmitEvents(virQEMUDriverPtr driver, virObjectEventPtr event = NULL; virObjectEventPtr event2 = NULL; + /* don't emit events for internal jobs and states */ + if (type >= VIR_DOMAIN_BLOCK_JOB_TYPE_LAST || + status >= VIR_DOMAIN_BLOCK_JOB_LAST) + return; + if (virStorageSourceIsLocalStorage(disk->src) && !virStorageSourceIsEmpty(disk->src)) { event = virDomainEventBlockJobNewFromObj(vm, virDomainDiskGetSource(disk),