]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Define and use a auto cleanup function with virSEVCapability
authorErik Skultety <eskultet@redhat.com>
Wed, 15 Aug 2018 15:02:06 +0000 (17:02 +0200)
committerErik Skultety <eskultet@redhat.com>
Mon, 20 Aug 2018 05:18:01 +0000 (07:18 +0200)
Keep with the recent effort of replacing as many explicit *Free
functions with their automatic equivalents.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
src/conf/domain_capabilities.h
src/qemu/qemu_capabilities.c
src/qemu/qemu_monitor_json.c

index 755de1365fd661e1b5153ecd4ce89aedbb2f9c94..45ebc436b93051b4f74eb64035daf7c53a613d7b 100644 (file)
@@ -25,6 +25,7 @@
 
 # include "internal.h"
 # include "domain_conf.h"
+# include "viralloc.h"
 
 typedef const char * (*virDomainCapsValToStr)(int value);
 
@@ -215,4 +216,7 @@ char * virDomainCapsFormat(virDomainCapsPtr const caps);
 
 void
 virSEVCapabilitiesFree(virSEVCapability *capabilities);
+
+VIR_DEFINE_AUTOPTR_FUNC(virSEVCapability, virSEVCapabilitiesFree);
+
 #endif /* __DOMAIN_CAPABILITIES_H__ */
index e6e199b2c67d0bfa3757e1ee8fb768a680534208..c17d26801e5acdd3d3ed093ce8bee62941686786 100644 (file)
@@ -5263,9 +5263,8 @@ static int
 virQEMUCapsFillDomainFeatureSEVCaps(virQEMUCapsPtr qemuCaps,
                                     virDomainCapsPtr domCaps)
 {
-    virSEVCapability *sev;
     virSEVCapability *cap = qemuCaps->sevCapabilities;
-    int ret = -1;
+    VIR_AUTOPTR(virSEVCapability) sev = NULL;
 
     if (!cap)
         return 0;
@@ -5274,19 +5273,16 @@ virQEMUCapsFillDomainFeatureSEVCaps(virQEMUCapsPtr qemuCaps,
         return -1;
 
     if (VIR_STRDUP(sev->pdh, cap->pdh) < 0)
-        goto cleanup;
+        return -1;
 
     if (VIR_STRDUP(sev->cert_chain, cap->cert_chain) < 0)
-        goto cleanup;
+        return -1;
 
     sev->cbitpos = cap->cbitpos;
     sev->reduced_phys_bits = cap->reduced_phys_bits;
     VIR_STEAL_PTR(domCaps->sev, sev);
 
-    ret = 0;
- cleanup:
-    virSEVCapabilitiesFree(sev);
-    return ret;
+    return 0;
 }
 
 
index 2921f110a94324c3b40234dac8e54d11cec43813..3f99f39120746f36dd97315f5ec000180665a1b8 100644 (file)
@@ -6443,9 +6443,11 @@ qemuMonitorJSONGetSEVCapabilities(qemuMonitorPtr mon,
     virJSONValuePtr cmd;
     virJSONValuePtr reply = NULL;
     virJSONValuePtr caps;
-    virSEVCapability *capability = NULL;
-    const char *pdh = NULL, *cert_chain = NULL;
-    unsigned int cbitpos, reduced_phys_bits;
+    const char *pdh = NULL;
+    const char *cert_chain = NULL;
+    unsigned int cbitpos;
+    unsigned int reduced_phys_bits;
+    VIR_AUTOPTR(virSEVCapability) capability = NULL;
 
     *capabilities = NULL;
 
@@ -6476,7 +6478,7 @@ qemuMonitorJSONGetSEVCapabilities(qemuMonitorPtr mon,
     }
 
     if (virJSONValueObjectGetNumberUint(caps, "reduced-phys-bits",
-                                       &reduced_phys_bits) < 0) {
+                                        &reduced_phys_bits) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                        _("query-sev-capabilities reply was missing"
                          " 'reduced-phys-bits' field"));
@@ -6512,7 +6514,6 @@ qemuMonitorJSONGetSEVCapabilities(qemuMonitorPtr mon,
     ret = 0;
 
  cleanup:
-    virSEVCapabilitiesFree(capability);
     virJSONValueFree(cmd);
     virJSONValueFree(reply);