From: Michal Privoznik Date: Tue, 4 Nov 2025 12:35:30 +0000 (+0100) Subject: domain_capabilities: Check NULL in FORMAT_PROLOGUE X-Git-Tag: CVE-2025-12748~23 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d2d442d79dc0e529c708643476e7f1ec9126748a;p=thirdparty%2Flibvirt.git domain_capabilities: Check NULL in FORMAT_PROLOGUE In the virDomainCaps struct there are some pointers that might be NULL (for instance 'sev', 'sgx', 'hyperv'). Teach FORMAT_PROLOGUE macro to check for NULL argument so that format functions (like virDomainCapsFeatureHypervFormat()) don't need to. Signed-off-by: Michal Privoznik Reviewed-by: Peter Krempa --- diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index 1c69a05685..78a5b1f56a 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -375,7 +375,7 @@ virDomainCapsStringValuesFormat(virBuffer *buf, #define FORMAT_PROLOGUE(item) \ do { \ - if (item->supported == VIR_TRISTATE_BOOL_ABSENT) \ + if (!item || item->supported == VIR_TRISTATE_BOOL_ABSENT) \ return; \ virBufferAsprintf(buf, "<" #item " supported='%s'%s\n", \ (item->supported == VIR_TRISTATE_BOOL_YES) ? "yes" : "no", \ @@ -818,9 +818,6 @@ virDomainCapsFeatureHypervFormat(virBuffer *buf, { virBuffer defaults = VIR_BUFFER_INIT_CHILD(buf); - if (!hyperv) - return; - FORMAT_PROLOGUE(hyperv); ENUM_PROCESS(hyperv, features, virDomainHypervTypeToString);