summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2018-03-22 11:11:38 -0300
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2018-11-06 13:05:29 -0200
commit127ba318fda5c79998c2df590cd651dac416dc42 (patch)
tree9634e308b3b2ba9ab437b685ff32a428d7e05696
parent72fa44d0fd273ee868ef092781214f83be55ead2 (diff)
downloadgnome-shell-127ba318fda5c79998c2df590cd651dac416dc42.tar.gz
polkit: Only unregister registered handles
If the initialization fails for some reason, for example by running 'gnome-shell --replace', we should not crash because of an attempt of unregistering an unregistered agent handle. Fix that by checking if the handle is not NULL before calling the unregistering routines. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/66
-rw-r--r--src/shell-polkit-authentication-agent.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/shell-polkit-authentication-agent.c b/src/shell-polkit-authentication-agent.c
index fd6c7913b..bca967fa1 100644
--- a/src/shell-polkit-authentication-agent.c
+++ b/src/shell-polkit-authentication-agent.c
@@ -318,8 +318,11 @@ shell_polkit_authentication_agent_unregister (ShellPolkitAuthenticationAgent *ag
if (agent->current_request != NULL)
auth_request_dismiss (agent->current_request);
- polkit_agent_listener_unregister (agent->handle);
- agent->handle = NULL;
+ if (agent->handle)
+ {
+ polkit_agent_listener_unregister (agent->handle);
+ agent->handle = NULL;
+ }
}
static void maybe_process_next_request (ShellPolkitAuthenticationAgent *agent);