mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
Fix QEMU migration cookie crash for guests with no graphics
When generating a cookie for a guest with no data, the QEMU_MIGRATION_COOKIE_GRAPHICS flag was set even if no graphics data was added. Avoid setting the flag unless it was needed, also add a safety check for mig->graphics being non-NULL * src/qemu/qemu_migration.c: Avoid cookie crash for guest with no graphics
This commit is contained in:
parent
2f3c682668
commit
03f8832684
@ -252,11 +252,12 @@ qemuMigrationCookieAddGraphics(qemuMigrationCookiePtr mig,
|
||||
|
||||
if (dom->def->ngraphics == 1 &&
|
||||
(dom->def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC ||
|
||||
dom->def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE) &&
|
||||
!(mig->graphics = qemuMigrationCookieGraphicsAlloc(driver, dom->def->graphics[0])))
|
||||
return -1;
|
||||
|
||||
mig->flags |= QEMU_MIGRATION_COOKIE_GRAPHICS;
|
||||
dom->def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE)) {
|
||||
if (!(mig->graphics =
|
||||
qemuMigrationCookieGraphicsAlloc(driver, dom->def->graphics[0])))
|
||||
return -1;
|
||||
mig->flags |= QEMU_MIGRATION_COOKIE_GRAPHICS;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -295,7 +296,8 @@ static void qemuMigrationCookieXMLFormat(virBufferPtr buf,
|
||||
virBufferEscapeString(buf, " <hostname>%s</hostname>\n", mig->hostname);
|
||||
virBufferAsprintf(buf, " <hostuuid>%s</hostuuid>\n", hostuuidstr);
|
||||
|
||||
if (mig->flags & QEMU_MIGRATION_COOKIE_GRAPHICS)
|
||||
if ((mig->flags & QEMU_MIGRATION_COOKIE_GRAPHICS) &&
|
||||
mig->graphics)
|
||||
qemuMigrationCookieGraphicsXMLFormat(buf, mig->graphics);
|
||||
|
||||
virBufferAddLit(buf, "</qemu-migration>\n");
|
||||
|
Loading…
x
Reference in New Issue
Block a user