From: Ján Tomko Date: Thu, 28 Mar 2019 13:46:58 +0000 (+0100) Subject: qemu: introduce CHECK_STREQ_NULLABLE in qemuDomainDiskChangeSupported X-Git-Tag: v5.2.0-rc2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8535a298a2df8496bf4fda468bc226c65ca8d1a3;p=thirdparty%2Flibvirt.git qemu: introduce CHECK_STREQ_NULLABLE in qemuDomainDiskChangeSupported A macro for comparing string fields of the disk. https://bugzilla.redhat.com/show_bug.cgi?id=1601677 Signed-off-by: Ján Tomko Reviewed-by: Laine Stump --- diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 7e0938e989..f856a5b081 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -9321,6 +9321,18 @@ qemuDomainDiskChangeSupported(virDomainDiskDefPtr disk, } \ } while (0) +#define CHECK_STREQ_NULLABLE(field, field_name) \ + do { \ + if (!disk->field) \ + break; \ + if (STRNEQ_NULLABLE(disk->field, orig_disk->field)) { \ + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, \ + _("cannot modify field '%s' of the disk"), \ + field_name); \ + return false; \ + } \ + } while (0) + CHECK_EQ(device, "device", false); CHECK_EQ(bus, "bus", false); if (STRNEQ(disk->dst, orig_disk->dst)) { @@ -9468,6 +9480,7 @@ qemuDomainDiskChangeSupported(virDomainDiskDefPtr disk, } #undef CHECK_EQ +#undef CHECK_STREQ_NULLABLE return true; }