]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: virDomainDiskSourceFormat: check for srcpool presence correctly
authorJán Tomko <jtomko@redhat.com>
Wed, 1 Nov 2023 14:18:24 +0000 (15:18 +0100)
committerJán Tomko <jtomko@redhat.com>
Tue, 21 Nov 2023 17:04:53 +0000 (18:04 +0100)
As a guard against programming errors, one part of the condition
only dereferences srcpool if it exists, other one does not.

Move the check up one level so that it actually has a chance to do
something useful.

Fixes: 19b1c0d31988a3a10c4694c10c27eb15c018f450
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
src/conf/domain_conf.c

index 428147fe449027ffcf76bd99a2eb11147b43ff39..27f686206774a05350dedb8ac222ec2dbff5c858 100644 (file)
@@ -22363,14 +22363,12 @@ virDomainDiskSourceFormat(virBuffer *buf,
     g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER;
     g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf);
 
-    if (src->type == VIR_STORAGE_TYPE_VOLUME) {
-        if (src->srcpool) {
-            virBufferEscapeString(&attrBuf, " pool='%s'", src->srcpool->pool);
-            virBufferEscapeString(&attrBuf, " volume='%s'", src->srcpool->volume);
-            if (src->srcpool->mode)
-                virBufferAsprintf(&attrBuf, " mode='%s'",
-                                  virStorageSourcePoolModeTypeToString(src->srcpool->mode));
-        }
+    if (src->type == VIR_STORAGE_TYPE_VOLUME && src->srcpool) {
+        virBufferEscapeString(&attrBuf, " pool='%s'", src->srcpool->pool);
+        virBufferEscapeString(&attrBuf, " volume='%s'", src->srcpool->volume);
+        if (src->srcpool->mode)
+            virBufferAsprintf(&attrBuf, " mode='%s'",
+                              virStorageSourcePoolModeTypeToString(src->srcpool->mode));
 
         if (flags & VIR_DOMAIN_DEF_FORMAT_VOLUME_TRANSLATED &&
             src->srcpool->actualtype != VIR_STORAGE_TYPE_NONE) {