]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu_hotplug: Don't dereference NULL pointer @newb in qemuDomainChangeNet()
authorMichal Privoznik <mprivozn@redhat.com>
Mon, 15 Feb 2021 17:30:41 +0000 (18:30 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 16 Feb 2021 08:05:33 +0000 (09:05 +0100)
In one of my previous commits I've made an attempt to restore the
noqueue qdisc on a TAP corresponding to domain's <interface/> if
QoS is cleared out. The commit consisted of two almost identical
hunks. In both the pointer is dereferenced. But in one of them,
the pointer to new bandwidth can't be NULL while in the other it
can leading to a crash.

Fixes: d53b09235398c1320ed2f1b45b640823171467ed
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1919619
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
src/qemu/qemu_hotplug.c

index e7863328db2b51e0d2d1a0ff3fdcd885f36b3b36..a66354426d8231325b27f567f34f9dfa5f140d39 100644 (file)
@@ -3900,10 +3900,10 @@ qemuDomainChangeNet(virQEMUDriverPtr driver,
 
         /* If the old bandwidth was cleared out, restore qdisc. */
         if (virDomainNetTypeSharesHostView(newdev)) {
-            if (!newb->out || newb->out->average == 0)
+            if (!newb || !newb->out || newb->out->average == 0)
                 qemuDomainInterfaceSetDefaultQDisc(driver, newdev);
         } else {
-            if (!newb->in || newb->in->average == 0)
+            if (!newb || !newb->in || newb->in->average == 0)
                 qemuDomainInterfaceSetDefaultQDisc(driver, newdev);
         }
         needReplaceDevDef = true;