
On Thu, Aug 04, 2016 at 09:47:48 +0200, Michal Privoznik wrote:
In our attempts to reconnect, we may create a polkit daemon. However, it may happen that we would rewrite the variable that already holds pointer to the agent.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- tools/virsh.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/virsh.c b/tools/virsh.c index d3fe06f..cb60edc 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -168,7 +168,7 @@ virshConnect(vshControl *ctl, const char *uri, bool readonly) err = virGetLastError(); if (err && err->domain == VIR_FROM_POLKIT && err->code == VIR_ERR_AUTH_UNAVAILABLE) { - if (!(pkagent = virPolkitAgentCreate())) + if (!pkagent && !(pkagent = virPolkitAgentCreate()))
This almost looks like a false positive, but I think that the loop of conditions that would actually make us overwrite the agent is very unintrospectable for humans too. ACK