]> xenbits.xensource.com Git - libvirt.git/commitdiff
cmdDomHostname: Fix uninitialized use of 'hostname' by refactoring cleanup
authorPeter Krempa <pkrempa@redhat.com>
Thu, 5 Mar 2020 08:29:02 +0000 (09:29 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 5 Mar 2020 15:21:47 +0000 (16:21 +0100)
Use 'g_autoptr' which mandates initialization for 'hostname' and also
for 'domain' to allow full refactor of the cleanup path.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
tools/virsh-domain.c

index 9d0f7d68d255a7870fcad6295b980eff0c9fef92..8591e483a5f8277f724ae0a2fe33b7b2427b1daf 100644 (file)
@@ -11885,9 +11885,8 @@ VIR_ENUM_IMPL(virshDomainHostnameSource,
 static bool
 cmdDomHostname(vshControl *ctl, const vshCmd *cmd)
 {
-    char *hostname;
-    virDomainPtr dom;
-    bool ret = false;
+    g_autofree char *hostname = NULL;
+    g_autoptr(virshDomain) dom = NULL;
     const char *sourcestr = NULL;
     int flags = 0; /* Use default value. Drivers can have its own default. */
 
@@ -11895,14 +11894,14 @@ cmdDomHostname(vshControl *ctl, const vshCmd *cmd)
         return false;
 
     if (vshCommandOptStringReq(ctl, cmd, "source", &sourcestr) < 0)
-        goto error;
+        return false;
 
     if (sourcestr) {
         int source = virshDomainHostnameSourceTypeFromString(sourcestr);
 
         if (source < 0) {
             vshError(ctl, _("Unknown data source '%s'"), sourcestr);
-            goto error;
+            return false;
         }
 
         switch ((virshDomainHostnameSource) source) {
@@ -11920,16 +11919,11 @@ cmdDomHostname(vshControl *ctl, const vshCmd *cmd)
     hostname = virDomainGetHostname(dom, flags);
     if (hostname == NULL) {
         vshError(ctl, "%s", _("failed to get hostname"));
-        goto error;
+        return false;
     }
 
     vshPrint(ctl, "%s\n", hostname);
-    ret = true;
-
- error:
-    VIR_FREE(hostname);
-    virshDomainFree(dom);
-    return ret;
+    return true;
 }
 
 /**