[gnome-shell] pokit-agent: fix segfault when we we fail to get the current session



commit b67138b5ae677e8af9f7fa978f812438e1c4b912
Author: Marc-Antoine Perennou <Marc-Antoine Perennou com>
Date:   Fri Feb 17 20:48:25 2012 +0100

    pokit-agent: fix segfault when we we fail to get the current session
    
    When using systemd, polkit doesn't set the error even when returning false in g_initable_init
    
    Signed-off-by: Marc-Antoine Perennou <Marc-Antoine Perennou com>
    
    https://bugzilla.gnome.org/show_bug.cgi?id=670319

 src/shell-polkit-authentication-agent.c |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)
---
diff --git a/src/shell-polkit-authentication-agent.c b/src/shell-polkit-authentication-agent.c
index ede4fd9..472dea5 100644
--- a/src/shell-polkit-authentication-agent.c
+++ b/src/shell-polkit-authentication-agent.c
@@ -108,11 +108,18 @@ shell_polkit_authentication_agent_init (ShellPolkitAuthenticationAgent *agent)
                                                       &error);
   if (subject == NULL)
     {
-      g_warning ("Error getting session for the process we are in: %s (%s %d)",
-                 error->message,
-                 g_quark_to_string (error->domain),
-                 error->code);
-      g_error_free (error);
+      if (error) /* polkit version 104 and older don't properly set error on failure */
+        {
+          g_warning ("Error getting session for the process we are in: %s (%s %d)",
+                     error->message,
+                     g_quark_to_string (error->domain),
+                     error->code);
+          g_error_free (error);
+        }
+      else
+        {
+          g_warning ("Error getting session for the process we are in");
+        }
       goto out;
     }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]