]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
domain_capabilities: Check NULL in FORMAT_PROLOGUE
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 4 Nov 2025 12:35:30 +0000 (13:35 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 10 Nov 2025 09:35:39 +0000 (10:35 +0100)
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 <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/conf/domain_capabilities.c

index 1c69a05685ba11c26dde6c078181ad729ba335d3..78a5b1f56ada9dab286bd4f0d4e648fdd78b442b 100644 (file)
@@ -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);