]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Don't crash in qemuDomainOpenChannel()
authorMartin Kletzander <mkletzan@redhat.com>
Mon, 2 Mar 2015 14:42:41 +0000 (15:42 +0100)
committerCole Robinson <crobinso@redhat.com>
Tue, 28 Apr 2015 15:06:37 +0000 (11:06 -0400)
The problem here was that when opening a channel, we were checking
whether the channel given is alias (can't be NULL for running domain) or
it's name, which can be NULL (for example with spicevmc).  In case of
such domain qemuDomainOpenChannel() made the daemon crash.
STREQ_NULLABLE() is safe to use since the code in question is wrapped in
"if (name)" and is more readable, so use that instead of checking for
non-NULL "vm->def->channels[i]->target.name".

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
(cherry picked from commit b3ea0a8fb86a8024538c68ca1d43a2bbc0192a0f)

src/qemu/qemu_driver.c

index 8a633f4c7530f0e73b8b9404df7417f93ea2f28c..6014074331d603f55dad8b243982b824edb680a5 100644 (file)
@@ -15498,7 +15498,7 @@ qemuDomainOpenChannel(virDomainPtr dom,
 
             if (vm->def->channels[i]->targetType == \
                 VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_VIRTIO &&
-                STREQ(name, vm->def->channels[i]->target.name))
+                STREQ_NULLABLE(name, vm->def->channels[i]->target.name))
                 chr = vm->def->channels[i];
         }
     } else {