]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: Simplify lifecycle of temp buffers in virDomainDefFormatFeatures
authorPeter Krempa <pkrempa@redhat.com>
Tue, 5 Mar 2019 12:27:45 +0000 (13:27 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 6 Mar 2019 14:53:53 +0000 (15:53 +0100)
Use VIR_AUTOCLEAN to avoid leaking the buffer on error path and get rid
of resetting mid loop since virXMLFormatElement does the reset
internally.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/domain_conf.c

index 52022aed0b4146d099843536e34a4afe08d38f29..605ae3667bf1851200f3aebddeef345713fc34e8 100644 (file)
@@ -27745,8 +27745,8 @@ static int
 virDomainDefFormatFeatures(virBufferPtr buf,
                            virDomainDefPtr def)
 {
-    virBuffer tmpAttrBuf = VIR_BUFFER_INITIALIZER;
-    virBuffer tmpChildBuf = VIR_BUFFER_INITIALIZER;
+    VIR_AUTOCLEAN(virBuffer) tmpAttrBuf = VIR_BUFFER_INITIALIZER;
+    VIR_AUTOCLEAN(virBuffer) tmpChildBuf = VIR_BUFFER_INITIALIZER;
     size_t i;
 
     for (i = 0; i < VIR_DOMAIN_FEATURE_LAST; i++) {
@@ -27784,8 +27784,7 @@ virDomainDefFormatFeatures(virBufferPtr buf,
             case VIR_TRISTATE_SWITCH_OFF:
                virReportError(VIR_ERR_INTERNAL_ERROR,
                              _("Unexpected state of feature '%s'"), name);
-
-               goto error;
+               return -1;
                break;
             }
 
@@ -27835,7 +27834,7 @@ virDomainDefFormatFeatures(virBufferPtr buf,
                 }
 
                 if (virXMLFormatElement(buf, "smm", &attrBuf, &childBuf) < 0)
-                    goto error;
+                    return -1;
             }
 
             break;
@@ -27973,9 +27972,6 @@ virDomainDefFormatFeatures(virBufferPtr buf,
             if (def->features[i] != VIR_TRISTATE_SWITCH_ON)
                 break;
 
-            virBufferFreeAndReset(&tmpAttrBuf);
-            virBufferFreeAndReset(&tmpChildBuf);
-
             if (def->hpt_resizing != VIR_DOMAIN_HPT_RESIZING_NONE) {
                 virBufferAsprintf(&tmpAttrBuf,
                                   " resizing='%s'",
@@ -27988,10 +27984,8 @@ virDomainDefFormatFeatures(virBufferPtr buf,
                                   def->hpt_maxpagesize);
             }
 
-            if (virXMLFormatElement(buf, "hpt",
-                                    &tmpAttrBuf, &tmpChildBuf) < 0) {
-                goto error;
-            }
+            if (virXMLFormatElement(buf, "hpt", &tmpAttrBuf, &tmpChildBuf) < 0)
+                return -1;
             break;
 
         case VIR_DOMAIN_FEATURE_MSRS:
@@ -28012,11 +28006,6 @@ virDomainDefFormatFeatures(virBufferPtr buf,
     virBufferAddLit(buf, "</features>\n");
 
     return 0;
-
- error:
-    virBufferFreeAndReset(&tmpAttrBuf);
-    virBufferFreeAndReset(&tmpChildBuf);
-    return -1;
 }