From 8e527dd653814fa0c6266228ae46f1aed0159608 Mon Sep 17 00:00:00 2001 From: Martin Kletzander Date: Fri, 11 Nov 2022 14:19:50 +0100 Subject: [PATCH] virGetConnectGeneric: Only delegate existing identities 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 Reviewed-by: Michal Privoznik --- src/driver.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/driver.c b/src/driver.c index cea74bdf95..04cbbcd3ef 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;