For a running guest, a <serial/> device can be hotunplugged. This
will then remove also aliased <console/>. Trying to hotplug a
<console/> device then, libvirtd crashed because it dereferences
def->consoles while there's none.

Fixes: 42d53ac799a1d7f1414737caa4deb73871876992
Signed-off-by: Michal Privoznik <mpriv...@redhat.com>
---
 src/qemu/qemu_alias.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/qemu/qemu_alias.c b/src/qemu/qemu_alias.c
index 85db7fbfe3..161d30cf72 100644
--- a/src/qemu/qemu_alias.c
+++ b/src/qemu/qemu_alias.c
@@ -95,6 +95,7 @@ qemuAssignDeviceChrAlias(virDomainDef *def,
     if (chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE &&
         chr->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL &&
         def->os.type == VIR_DOMAIN_OSTYPE_HVM &&
+        def->nconsoles &&
         def->consoles[0] == chr &&
         def->nserials &&
         def->serials[0]->info.alias) {
-- 
2.39.2

Reply via email to