If user hasn't provided any @emulatorbin, the qemuCaps are
searched by @arch provided (which in fact can be guessed from the
host). However, there's no guarantee that the qemu binary for
@arch will exist.  Therefore qemu capabilities may be nonexistent
too. If that's the case, we should throw an error message prior
jumping onto 'cleanup' label as the helper lookup function
remains silent on no search result.

Signed-off-by: Michal Privoznik <[email protected]>
---

Notes:
    This would qualify to be pushed under trivial rule, but maybe
    somebody has a better idea for the error message (or its code).

 src/qemu/qemu_driver.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 06d3f53..8e01965 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -16990,8 +16990,12 @@ qemuConnectGetDomainCapabilities(virConnectPtr conn,
         }
     } else {
         if (!(qemuCaps = virQEMUCapsCacheLookupByArch(driver->qemuCapsCache,
-                                                      arch)))
+                                                      arch))) {
+            virReportError(VIR_ERR_INVALID_ARG,
+                           _("unable to find any emulator to serve '%s' "
+                             "architecture"), virArchToString(arch));
             goto cleanup;
+        }
 
         emulatorbin = virQEMUCapsGetBinary(qemuCaps);
     }
-- 
1.8.5.5

--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to