From: Andrea Bolognani Date: Fri, 26 May 2023 15:47:42 +0000 (+0200) Subject: qemu: Fix lookup against stateless/combined pflash X-Git-Tag: v9.7.0-rc1~118 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ac76386edad3be2bbd6202a30063b9205011f5c5;p=thirdparty%2Flibvirt.git qemu: Fix lookup against stateless/combined pflash Just like the more common split builds, these are of type QEMU_FIRMWARE_DEVICE_FLASH; however, they have no associated NVRAM template, so we can't access the corresponding structure member unconditionally or we'll trigger a crash. https://bugzilla.redhat.com/show_bug.cgi?id=2196178 Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 5f030ebce4..b1d342563b 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -971,9 +971,12 @@ qemuFirmwareMatchesPaths(const qemuFirmware *fw, if (loader && loader->path && STRNEQ(loader->path, flash->executable.filename)) return false; - if (loader && loader->nvramTemplate && - STRNEQ(loader->nvramTemplate, flash->nvram_template.filename)) - return false; + if (loader && loader->nvramTemplate) { + if (flash->mode != QEMU_FIRMWARE_FLASH_MODE_SPLIT) + return false; + if (STRNEQ(loader->nvramTemplate, flash->nvram_template.filename)) + return false; + } break; case QEMU_FIRMWARE_DEVICE_MEMORY: if (loader && loader->path &&