From: Peter Krempa Date: Fri, 11 Apr 2025 11:42:37 +0000 (+0200) Subject: qemuDomainAttachDiskGeneric: Report errors from 'qemuBuildThrottleFiltersAttachPrepar... X-Git-Tag: v11.3.0-rc1~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ba4de5e09e0e88d1af3871869c61798ade681e93;p=thirdparty%2Flibvirt.git qemuDomainAttachDiskGeneric: Report errors from 'qemuBuildThrottleFiltersAttachPrepareBlockdev' 'qemuBuildThrottleFiltersAttachPrepareBlockdev' can fail when constructing JSON props, but otherwise always retruns a pointer even if there's nothing to do. The code in 'qemuDomainAttachDiskGeneric' didn't handle this properly as it considered NULL as "nothing to do". Return the failure instead and check if tere's something to do by looking at 'nfilterdata' Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 4562a75d2a..5326aba281 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -740,10 +740,15 @@ qemuDomainAttachDiskGeneric(virDomainObj *vm, if (rc < 0) goto rollback; - if ((filterData = qemuBuildThrottleFiltersAttachPrepareBlockdev(disk))) { + if (!(filterData = qemuBuildThrottleFiltersAttachPrepareBlockdev(disk))) + return -1; + + if (filterData->nfilterdata > 0) { if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) return -1; + rc = qemuBlockThrottleFiltersAttach(priv->mon, filterData); + qemuDomainObjExitMonitor(vm); if (rc < 0) goto rollback;