[PATCH 2/2] virGetConnectGeneric: Only delegate existing identities

Martin Kletzander mkletzan at redhat.com
Fri Nov 11 13:32:23 UTC 2022


Inside virt-qemu-run, just like in virsh for example, there is no
identity set in the current thread, so we should not try to set it,
otherwise things like connecting to other drivers might fail and on
top of that there is no error set so the user can't even see what's
wrong.

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2000075

Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
---
 src/driver.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/src/driver.c b/src/driver.c
index cea74bdf95c6..04cbbcd3ef83 100644
--- a/src/driver.c
+++ b/src/driver.c
@@ -160,17 +160,15 @@ virGetConnectGeneric(virThreadLocal *threadPtr, const char *name)
 
         if (conn->driver->connectSetIdentity != NULL) {
             g_autoptr(virIdentity) ident = NULL;
-            g_autoptr(virTypedParamList) identparams = NULL;
 
             VIR_DEBUG("Attempting to delegate current identity");
-            if (!(ident = virIdentityGetCurrent()))
-                goto error;
+            ident = virIdentityGetCurrent();
+            if (ident) {
+                g_autoptr(virTypedParamList) tmp = virIdentityGetParameters(ident);
 
-            if (!(identparams = virIdentityGetParameters(ident)))
-                goto error;
-
-            if (virConnectSetIdentity(conn, identparams->par, identparams->npar, 0) < 0)
-                goto error;
+                if (virConnectSetIdentity(conn, tmp->par, tmp->npar, 0) < 0)
+                    goto error;
+            }
         }
     }
     return conn;
-- 
2.38.1



More information about the libvir-list mailing list