]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: fix success return from qemuDomainGetHostnameLease master
authorRoman Bogorodskiy <bogorodskiy@gmail.com>
Sat, 11 Apr 2026 13:28:55 +0000 (15:28 +0200)
committerRoman Bogorodskiy <bogorodskiy@gmail.com>
Tue, 14 Apr 2026 17:09:06 +0000 (19:09 +0200)
The current qemuDomainGetHostnameLease() implementation
jumps to the "endjob" label when it finds hostname.
As the label is defined after "ret = 0",
qemuDomainGetHostnameLease() returns -1 in this case.

That works because in qemuDomainGetHostname() it is used like that:

...
       if (qemuDomainGetHostnameLease(vm, &hostname) < 0)
           goto cleanup;

...

   cleanup:
      virDomainObjEndAPI(&vm);
      return hostname;
  }

So it works, but it looks confusing. To make more consistent,
use 'break' in qemuDomainGetHostnameLease() when the hostname
is found, so it returns 0 in this case.

Fixes: a4a5827c9fc396f2b1848c1d393385535b106d1a
Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/qemu/qemu_driver.c

index 2d31d4aa31c3e40961330370597deef745013f11..a3bcfc701d260d622fe443639422fdf6d341a562 100644 (file)
@@ -16434,6 +16434,8 @@ qemuDomainGetHostnameLease(virDomainObj *vm,
     size_t i, j;
     int ret = -1;
 
     size_t i, j;
     int ret = -1;
 
+    *hostname = NULL;
+
     if (virDomainObjBeginJob(vm, VIR_JOB_QUERY) < 0)
         return -1;
 
     if (virDomainObjBeginJob(vm, VIR_JOB_QUERY) < 0)
         return -1;
 
@@ -16471,7 +16473,7 @@ qemuDomainGetHostnameLease(virDomainObj *vm,
         VIR_FREE(leases);
 
         if (*hostname)
         VIR_FREE(leases);
 
         if (*hostname)
-            goto endjob;
+            break;
     }
 
     ret = 0;
     }
 
     ret = 0;