]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: fix crash in qemuDomainSetBlkioParameters without cgroups
authorPavel Hrdina <phrdina@redhat.com>
Tue, 11 Aug 2020 13:56:54 +0000 (15:56 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Wed, 12 Aug 2020 12:43:01 +0000 (14:43 +0200)
If we don't have cgroups available and user tries to update blkio
parameters for running VM it will crash.

It should have been protected by the virCgroupHasController() check but
it was never called if the API was executed without any flags.

We call virDomainObjGetDefs() which sets `def` and `persistentDef` based
on the flags and these two variables should be used to figure out if we
need to update LIVE, CONFIG or both states.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1808293

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_driver.c

index 07e9518a9b44cbd287950be3a1ee37fb61ebb369..8008da6d161c472013ad93ffa032b36dc7f16311 100644 (file)
@@ -9356,7 +9356,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom,
     if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0)
         goto endjob;
 
-    if (flags & VIR_DOMAIN_AFFECT_LIVE) {
+    if (def) {
         if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_BLKIO)) {
             virReportError(VIR_ERR_OPERATION_INVALID, "%s",
                            _("blkio cgroup isn't mounted"));