]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Get ultra paranoid in checking if error objects are set before printing them out
authorRobert Ancell <robert.ancell@canonical.com>
Wed, 7 Sep 2011 05:37:55 +0000 (15:37 +1000)
committerRobert Ancell <robert.ancell@canonical.com>
Wed, 7 Sep 2011 05:37:55 +0000 (15:37 +1000)
15 files changed:
src/console-kit.c
src/display.c
src/greeter.c
src/guest-account.c
src/lightdm.c
src/pam-session.c
src/plymouth.c
src/seat-xlocal.c
src/seat.c
src/session.c
src/user.c
src/xauthority.c
src/xdmcp-server.c
src/xserver-local.c
src/xsession.c

index 3ec54b27d315608ad1c574e141c44584df0ffa72..56eb17e823a0842937c4abb484244d026f758bef 100644 (file)
@@ -29,7 +29,7 @@ load_ck_proxy (void)
                                                   "/org/freedesktop/ConsoleKit/Manager",
                                                   "org.freedesktop.ConsoleKit.Manager",
                                                   NULL, &error);
-        if (!ck_proxy)
+        if (error)
             g_warning ("Unable to get connection to ConsoleKit: %s", error->message);
         g_clear_error (&error);
     }
@@ -57,7 +57,7 @@ ck_open_session (GVariantBuilder *parameters)
                                      NULL,
                                      &error);
 
-    if (!result)
+    if (error)
         g_warning ("Failed to open CK session: %s", error->message);
     g_clear_error (&error);
     if (!result)
@@ -97,7 +97,7 @@ ck_unlock_session (const gchar *cookie)
                                      -1,
                                      NULL,
                                      &error);
-    if (!result)
+    if (error)
         g_warning ("Error getting ConsoleKit session: %s", error->message);
     g_clear_error (&error);
     if (!result)
@@ -120,7 +120,7 @@ ck_unlock_session (const gchar *cookie)
                                            NULL, &error);
     g_free (session_path);
   
-    if (!proxy)
+    if (error)
         g_warning ("Unable to get connection to ConsoleKit session: %s", error->message);
     g_clear_error (&error);
     if (!proxy)
@@ -135,7 +135,7 @@ ck_unlock_session (const gchar *cookie)
                                      &error);
     g_object_unref (proxy);
 
-    if (!result)
+    if (error)
         g_warning ("Error unlocking ConsoleKit session: %s", error->message);
     g_clear_error (&error);
     if (!result)
@@ -149,7 +149,7 @@ ck_unlock_session (const gchar *cookie)
                                            session_path,
                                            "org.freedesktop.ConsoleKit.Session",
                                            NULL, &error);
-    if (!proxy)
+    if (error)
         g_warning ("Unable to get connection to ConsoleKit session: %s", error->message);
     g_variant_unref (result);
     g_clear_error (&error);
@@ -165,7 +165,7 @@ ck_unlock_session (const gchar *cookie)
                                      &error);
     g_object_unref (proxy);
 
-    if (!result)
+    if (error)
         g_warning ("Error unlocking ConsoleKit session: %s", error->message);
     g_clear_error (&error);
     if (!result)
@@ -195,7 +195,7 @@ ck_close_session (const gchar *cookie)
                                      NULL,
                                      &error);
 
-    if (!result)
+    if (error)
         g_warning ("Error ending ConsoleKit session: %s", error->message);
     g_clear_error (&error);
     if (!result)
index fd1f4d93beaad39dd167613b077d8a58650b43aa..e972cac2fce83d5f25016d3cd4557944149454de 100644 (file)
@@ -307,9 +307,10 @@ autologin (Display *display, const gchar *username, gboolean start_greeter_if_fa
     g_signal_connect (authentication, "authentication-result", G_CALLBACK (autologin_authentication_result_cb), display);
 
     result = pam_session_authenticate (authentication, &error);
+    if (error)
+        g_debug ("Failed to start autologin session for %s: %s", username, error->message);
     if (!result)
     {
-        g_debug ("Failed to start autologin session for %s: %s", username, error->message);
         g_signal_handlers_disconnect_matched (authentication, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, display);
         g_object_unref (authentication);
     }
@@ -434,7 +435,7 @@ create_session (Display *display, PAMSession *authentication, const gchar *sessi
 
     session_desktop_file = g_key_file_new ();
     result = g_key_file_load_from_file (session_desktop_file, path, G_KEY_FILE_NONE, &error);
-    if (!result)
+    if (error)
         g_debug ("Failed to load session file %s: %s:", path, error->message);
     g_clear_error (&error);
     if (result)
index 85cdada0d51a909a8827d794ed6ce39a611d4962..392555c16d5fa87e89103ce7b2e869d5bcdf52b8 100644 (file)
@@ -114,12 +114,15 @@ int_length ()
 static void
 write_message (Greeter *greeter, guint8 *message, gsize message_length)
 {
+    GIOStatus status;
     GError *error = NULL;
-    if (g_io_channel_write_chars (greeter->priv->to_greeter_channel, (gchar *) message, message_length, NULL, &error) != G_IO_STATUS_NORMAL)
+
+    status = g_io_channel_write_chars (greeter->priv->to_greeter_channel, (gchar *) message, message_length, NULL, &error);
+    if (error)
         g_warning ("Error writing to greeter: %s", error->message);
-    else
-        g_debug ("Wrote %zi bytes to greeter", message_length);
     g_clear_error (&error);
+    if (status == G_IO_STATUS_NORMAL)
+        g_debug ("Wrote %zi bytes to greeter", message_length);
     g_io_channel_flush (greeter->priv->to_greeter_channel, NULL);
 }
 
@@ -266,6 +269,7 @@ reset_session (Greeter *greeter)
 static void
 handle_login (Greeter *greeter, guint32 sequence_number, const gchar *username)
 {
+    gboolean result;
     GError *error = NULL;
 
     if (username[0] == '\0')
@@ -288,11 +292,11 @@ handle_login (Greeter *greeter, guint32 sequence_number, const gchar *username)
 
     g_signal_connect (G_OBJECT (greeter->priv->authentication), "got-messages", G_CALLBACK (pam_messages_cb), greeter);
     g_signal_connect (G_OBJECT (greeter->priv->authentication), "authentication-result", G_CALLBACK (authentication_result_cb), greeter);
-    if (!pam_session_authenticate (greeter->priv->authentication, &error))
-    {
+    result = pam_session_authenticate (greeter->priv->authentication, &error);
+    if (error)
         g_debug ("Failed to start authentication: %s", error->message);
+    if (!result)
         send_end_authentication (greeter, sequence_number, "", PAM_SYSTEM_ERR);
-    }
     g_clear_error (&error);
 }
 
@@ -471,7 +475,7 @@ read_cb (GIOChannel *source, GIOCondition condition, gpointer data)
                                       n_to_read - greeter->priv->n_read,
                                       &n_read,
                                       &error);
-    if (status != G_IO_STATUS_NORMAL)
+    if (error)
         g_warning ("Error reading from greeter: %s", error->message);
     g_clear_error (&error);
     if (status != G_IO_STATUS_NORMAL)
index 6ac6b5c093f495b860317c066e358836c1df73cd..14cd87c55d9f2cbed7816b871a964d4db4daed83 100644 (file)
@@ -71,7 +71,7 @@ guest_account_setup (void)
     g_debug ("Opening guest account with command '%s'", command);
     result = run_script (command, &stdout_text, &exit_status, &error);
     g_free (command);
-    if (!result)
+    if (error)
         g_warning ("Error running guest account setup script '%s': %s", get_setup_script (), error->message);
     g_clear_error (&error);
     if (!result)
@@ -108,19 +108,20 @@ void
 guest_account_cleanup (const gchar *username)
 {
     gchar *command;
+    gboolean result;
     gint exit_status;
     GError *error = NULL;
 
     command = g_strdup_printf ("%s remove %s", get_setup_script (), username);
     g_debug ("Closing guest account %s with command '%s'", username, command);
-    if (run_script (command, NULL, &exit_status, &error))
-    {
-        if (exit_status != 0)
-            g_debug ("Guest account cleanup script returns %d", exit_status);
-    }
-    else
+
+    result = run_script (command, NULL, &exit_status, &error);
+    g_free (command);
+
+    if (error)
         g_warning ("Error running guest account cleanup script '%s': %s", get_setup_script (), error->message);
     g_clear_error (&error);
 
-    g_free (command);
+    if (result && exit_status != 0)
+        g_debug ("Guest account cleanup script returns %d", exit_status);
 }
index 3178940c1c56a034c088c2db65c58c4ebe1f6179..1c75a741d760f791621d99bf226a67c9de469876 100644 (file)
@@ -843,7 +843,8 @@ main (int argc, char **argv)
     g_option_context_add_main_entries (option_context, options, GETTEXT_PACKAGE);
     if (!g_option_context_parse (option_context, &argc, &argv, &error))
     {
-        fprintf (stderr, "%s\n", error->message);
+        if (error)
+            fprintf (stderr, "%s\n", error->message);
         fprintf (stderr, /* Text printed out when an unknown command-line argument provided */
                  _("Run '%s --help' to see a full list of available command line options."), argv[0]);
         fprintf (stderr, "\n");
@@ -925,9 +926,14 @@ main (int argc, char **argv)
     /* Load config file */
     if (!config_load_from_file (config_get_instance (), config_path, &error))
     {
-        if (explicit_config || !g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT))
+        gboolean is_empty;
+
+        is_empty = error && g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT);
+      
+        if (explicit_config || !is_empty)      
         {
-            g_printerr ("Failed to load configuration from %s: %s\n", config_path, error->message);
+            if (error)
+                g_printerr ("Failed to load configuration from %s: %s\n", config_path, error->message);
             exit (EXIT_FAILURE);
         }
     }
@@ -1112,6 +1118,7 @@ main (int argc, char **argv)
         {
             gchar *dir, *path;
             GKeyFile *keys;
+            gboolean result;
             GError *error = NULL;
 
             dir = config_get_string (config_get_instance (), "LightDM", "config-directory");
@@ -1119,16 +1126,18 @@ main (int argc, char **argv)
             g_free (dir);
 
             keys = g_key_file_new ();
-            if (g_key_file_load_from_file (keys, path, G_KEY_FILE_NONE, &error))
+            result = g_key_file_load_from_file (keys, path, G_KEY_FILE_NONE, &error);
+            if (error)
+                g_debug ("Error getting key %s", error->message);
+            g_clear_error (&error);
+
+            if (result)
             {
                 if (g_key_file_has_key (keys, "keyring", key_name, NULL))
                     key = g_key_file_get_string (keys, "keyring", key_name, NULL);
                 else
-                    g_debug ("Key %s not defined", error->message);
+                    g_debug ("Key %s not defined", key_name);
             }
-            else
-                g_debug ("Error getting key %s", error->message);
-            g_clear_error (&error);
             g_free (path);
             g_key_file_free (keys);
         }
index b10021f1a28e985592ca9db443d4776418fdbb81..e852a6cc6dbb2933e2d2b7ce140cb3239e7b140a 100644 (file)
@@ -270,7 +270,8 @@ get_password (const gchar *username)
     gint i;
     GError *error = NULL;
 
-    if (!g_file_get_contents (passwd_file, &data, NULL, &error))
+    g_file_get_contents (passwd_file, &data, NULL, &error);
+    if (error)
         g_warning ("Error loading passwd file: %s", error->message);
     g_clear_error (&error);
 
index eda05de7f115faeebfcf7a716f1a41c32762afab..406268063aa582391fe167a2eb8b59cec3a32a7e 100644 (file)
@@ -31,11 +31,12 @@ plymouth_run_command (const gchar *command, gint *exit_status)
     command_line = g_strdup_printf ("plymouth %s", command);
     result = g_spawn_command_line_sync (command_line, NULL, NULL, exit_status, &error);
 
-    if (!result)
+    if (error)
         g_debug ("Could not run %s: %s", command_line, error->message);
-    g_free (command_line);
     g_clear_error (&error);
 
+    g_free (command_line);
+
     return result;
 }
 
index ad8fe5ae8bb1cd2ce9844630ff79c7539a54771a..9fad872cd9ce2dbbd641be0b427d9dc8187cebe3 100644 (file)
@@ -67,6 +67,7 @@ seat_xlocal_add_display (Seat *seat)
     {
         gchar *dir, *path;
         GKeyFile *keys;
+        gboolean result;
         GError *error = NULL;
 
         dir = config_get_string (config_get_instance (), "LightDM", "config-directory");
@@ -74,23 +75,26 @@ seat_xlocal_add_display (Seat *seat)
         g_free (dir);
 
         keys = g_key_file_new ();
-        if (g_key_file_load_from_file (keys, path, G_KEY_FILE_NONE, &error))
+        result = g_key_file_load_from_file (keys, path, G_KEY_FILE_NONE, &error);
+        if (error)
+            g_debug ("Error getting key %s", error->message);
+        g_clear_error (&error);      
+
+        if (result)
         {
             gchar *key = NULL;
 
             if (g_key_file_has_key (keys, "keyring", key_name, NULL))
                 key = g_key_file_get_string (keys, "keyring", key_name, NULL);
             else
-                g_debug ("Key %s not defined", error->message);
+                g_debug ("Key %s not defined", key_name);
 
             if (key)
                 xserver_local_set_xdmcp_key (xserver, key);
             g_free (key);
         }
-        else
-            g_debug ("Error getting key %s", error->message);
+
         g_free (path);
-        g_clear_error (&error);
         g_key_file_free (keys);
     }
 
index f63e87c0aa07670c74564e1ca77be0067bcdc4dd..87d6563f304e2d0b2d291c4aed38a6fd015b16f6 100644 (file)
@@ -237,6 +237,7 @@ display_get_guest_username_cb (Display *display, Seat *seat)
 static gboolean
 run_script (Display *display, const gchar *script_name, User *user)
 {
+    gboolean result;
     GPtrArray *env_array;
     gchar **argv, **envp;
     gchar *env, *command;
@@ -254,12 +255,11 @@ run_script (Display *display, const gchar *script_name, User *user)
         return FALSE;
     }
 
-    if (!g_shell_parse_argv (script_name, NULL, &argv, &error))
-    {
+    result = g_shell_parse_argv (script_name, NULL, &argv, &error);
+    if (error)
         g_warning ("Could not parse %s: %s", script_name, error->message);
-        g_error_free (error);
+    if (!result)
         return FALSE;
-    }
 
     env_array = g_ptr_array_sized_new (10);
     if (!env_array)
@@ -310,24 +310,27 @@ run_script (Display *display, const gchar *script_name, User *user)
     g_debug ("Executing script: %s", command);
     g_free (env);
     g_free (command);
-    if (!g_spawn_sync (NULL,
-                       argv,
-                       envp,
-                       G_SPAWN_SEARCH_PATH,
-                       NULL,
-                       NULL,
-                       NULL,
-                       NULL,
-                       &exit_status,
-                       &error))
-    {
+    result = g_spawn_sync (NULL,
+                           argv,
+                           envp,
+                           G_SPAWN_SEARCH_PATH,
+                           NULL,
+                           NULL,
+                           NULL,
+                           NULL,
+                           &exit_status,
+                           &error);
+    if (error)
         g_warning ("Error executing %s: %s", script_name, error->message);
-        g_error_free (error);
-    }
+    g_clear_error (&error);
     g_strfreev (argv);
     g_strfreev (envp);
+  
+    if (!result)
+        return FALSE;
 
-    if (WIFEXITED (exit_status)) {
+    if (WIFEXITED (exit_status))
+    {
         g_debug ("Exit status of %s: %d", script_name, WEXITSTATUS (exit_status));
         return WEXITSTATUS (exit_status) == EXIT_SUCCESS;
     }
index 4372195c947e8ef05c1127345651aeeb16f84215..f476f9b1dc8922c4d635f67e3337c415f29bfcbe 100644 (file)
@@ -175,11 +175,10 @@ session_real_start (Session *session)
                             user_get_home_directory (user),
                             absolute_command,
                             &error);
-    g_free (absolute_command);
-
-    if (!result)
+    if (error)
         g_warning ("Failed to spawn session: %s", error->message);
     g_clear_error (&error);
+    g_free (absolute_command);
 
     return result;
 }
index 90bd3c712378d432c66beb4290027833160e6ffc..739e596ed189f22c1127c59787cea5e2b4b709dd 100644 (file)
@@ -69,14 +69,15 @@ call_method (GDBusProxy *proxy, const gchar *method, GVariant *args,
                                      -1,
                                      NULL,
                                      &error);
-
-    if (!answer) {
+    if (error)
         g_warning ("Could not call %s: %s", method, error->message);
-        g_error_free (error);
+    g_clear_error (&error);
+
+    if (!answer)
         return FALSE;
-    }
 
-    if (!g_variant_is_of_type (answer, G_VARIANT_TYPE (expected))) {
+    if (!g_variant_is_of_type (answer, G_VARIANT_TYPE (expected)))
+    {
         g_warning ("Unexpected response from %s: %s",
                    method, g_variant_get_type_string (answer));
         g_variant_unref (answer);
@@ -87,6 +88,7 @@ call_method (GDBusProxy *proxy, const gchar *method, GVariant *args,
         *result = answer;
     else
         g_variant_unref (answer);
+
     return TRUE;
 }
 
@@ -150,14 +152,14 @@ get_string_from_dmrc (const gchar *username, const gchar *group,
 static GDBusProxy *
 get_accounts_proxy_for_user (const gchar *user)
 {
-    g_return_val_if_fail (user != NULL, NULL);
-
     GDBusProxy *proxy;
     GError *error = NULL;
     GVariant *result;
     gboolean success;
     gchar *user_path = NULL;
 
+    g_return_val_if_fail (user != NULL, NULL);  
+
     proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
                                            G_DBUS_PROXY_FLAGS_NONE,
                                            NULL,
@@ -165,12 +167,12 @@ get_accounts_proxy_for_user (const gchar *user)
                                            "/org/freedesktop/Accounts",
                                            "org.freedesktop.Accounts",
                                            NULL, &error);
-
-    if (!proxy) {
+    if (error)
         g_warning ("Could not get accounts proxy: %s", error->message);
-        g_error_free (error);
+    g_clear_error (&error);
+
+    if (!proxy)
         return NULL;
-    }
 
     success = call_method (proxy, "FindUserByName", g_variant_new ("(s)", user),
                            "(o)", &result);
@@ -192,13 +194,10 @@ get_accounts_proxy_for_user (const gchar *user)
                                            user_path,
                                            "org.freedesktop.Accounts.User",
                                            NULL, &error);
-    g_free (user_path);
-
-    if (!proxy) {
+    if (error)
         g_warning ("Could not get accounts user proxy: %s", error->message);
-        g_error_free (error);
-        return NULL;
-    }
+    g_clear_error (&error);
+    g_free (user_path);
 
     return proxy;
 }
@@ -241,7 +240,8 @@ load_passwd_file ()
     gint i;
     GError *error = NULL;
 
-    if (!g_file_get_contents (passwd_file, &data, NULL, &error))
+    g_file_get_contents (passwd_file, &data, NULL, &error);
+    if (error)
         g_warning ("Error loading passwd file: %s", error->message);
     g_clear_error (&error);
 
index 0a80b208bc6a901433c3a1e121bfd6ae723ee604..e8358482e1d0d9e1d1fba22eefb83936e2fe90f9 100644 (file)
@@ -251,7 +251,7 @@ xauth_write (XAuthority *auth, XAuthWriteMode mode, User *user, GFile *file, GEr
         GError *read_error = NULL;
 
         input_stream = g_file_read (file, NULL, &read_error);
-        if (!input_stream && !g_error_matches (read_error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND))
+        if (read_error && !g_error_matches (read_error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND))
             g_warning ("Error reading existing Xauthority: %s", read_error->message);
         g_clear_error (&read_error);
     }
@@ -269,7 +269,7 @@ xauth_write (XAuthority *auth, XAuthWriteMode mode, User *user, GFile *file, GEr
                  read_string (G_INPUT_STREAM (input_stream), &a->priv->authorization_name, &read_error) &&
                  read_uint16 (G_INPUT_STREAM (input_stream), &a->priv->authorization_data_length, NULL, &read_error) &&
                  read_data (G_INPUT_STREAM (input_stream), a->priv->authorization_data_length, &a->priv->authorization_data, &read_error);
-        if (!result)
+        if (read_error)
             g_warning ("Error reading X authority %s: %s", g_file_get_path (file), read_error->message);
         g_clear_error (&read_error);
 
@@ -304,7 +304,8 @@ xauth_write (XAuthority *auth, XAuthWriteMode mode, User *user, GFile *file, GEr
     if (input_stream)
     {
         GError *close_error = NULL;
-        if (!g_input_stream_close (G_INPUT_STREAM (input_stream), NULL, &close_error))
+        g_input_stream_close (G_INPUT_STREAM (input_stream), NULL, &close_error);
+        if (close_error)
             g_warning ("Error closing Xauthority: %s", close_error->message);
         g_clear_error (&close_error);
         g_object_unref (input_stream);
index 7606cea4ece139bf886e88cefc29aceb0dafd0d8..ce475bbcd6b455b784fa9b14b700ae6b4220367e 100644 (file)
@@ -159,9 +159,9 @@ send_packet (GSocket *socket, GSocketAddress *address, XDMCPPacket *packet)
     {
         GError *error = NULL;
 
-        if (g_socket_send_to (socket, address, (gchar *) data, n_written, NULL, &error) < 0)
+        g_socket_send_to (socket, address, (gchar *) data, n_written, NULL, &error);
+        if (error)
             g_warning ("Error sending packet: %s", error->message);
-
         g_clear_error (&error);
     }
 }
@@ -557,6 +557,10 @@ read_cb (GSocket *socket, GIOCondition condition, XDMCPServer *server)
     gssize n_read;
 
     n_read = g_socket_receive_from (socket, &address, data, 1024, NULL, &error);
+    if (error)
+        g_warning ("Failed to read from XDMCP socket: %s", error->message);
+    g_clear_error (&error);
+
     if (n_read > 0)
     {
         XDMCPPacket *packet;
@@ -590,10 +594,6 @@ read_cb (GSocket *socket, GIOCondition condition, XDMCPServer *server)
             xdmcp_packet_free (packet);
         }
     }
-    else
-        g_warning ("Failed to read from XDMCP socket: %s", error->message);
-
-    g_clear_error (&error);
 
     return TRUE;
 }
@@ -629,25 +629,28 @@ xdmcp_server_start (XDMCPServer *server)
     g_return_val_if_fail (server != NULL, FALSE);
   
     server->priv->socket = open_udp_socket (G_SOCKET_FAMILY_IPV4, server->priv->port, &error);
+    if (error)
+        g_warning ("Failed to create IPv4 XDMCP socket: %s", error->message);
+    g_clear_error (&error);
+  
     if (server->priv->socket)
     {
         source = g_socket_create_source (server->priv->socket, G_IO_IN, NULL);
         g_source_set_callback (source, (GSourceFunc) read_cb, server, NULL);
         g_source_attach (source, NULL);
     }
-    else
-        g_warning ("Failed to create IPv4 XDMCP socket: %s", error->message);
+    
+    server->priv->socket6 = open_udp_socket (G_SOCKET_FAMILY_IPV6, server->priv->port, &error);
+    if (error)
+        g_warning ("Failed to create IPv6 XDMCP socket: %s", error->message);
     g_clear_error (&error);
-    server->priv->socket6 = open_udp_socket (G_SOCKET_FAMILY_IPV6, server->priv->port, &error);  
+
     if (server->priv->socket6)
     {
         source = g_socket_create_source (server->priv->socket6, G_IO_IN, NULL);
         g_source_set_callback (source, (GSourceFunc) read_cb, server, NULL);
         g_source_attach (source, NULL);
     }
-    else
-        g_warning ("Failed to create IPv6 XDMCP socket: %s", error->message);
-    g_clear_error (&error);
 
     if (!server->priv->socket && !server->priv->socket6)
         return FALSE;
index 323811232c790cfb373f5262eed0d93f696f63b3..06e9ca9a7dd0696a51452c64efe3f26ffef23619 100644 (file)
@@ -277,7 +277,8 @@ stopped_cb (Process *process, XServerLocal *server)
         g_debug ("Removing X server authority from %s", path);
         g_free (path);
 
-        if (!xauth_write (xserver_get_authority (XSERVER (server)), XAUTH_WRITE_MODE_REMOVE, NULL, server->priv->authority_file, &error))
+        xauth_write (xserver_get_authority (XSERVER (server)), XAUTH_WRITE_MODE_REMOVE, NULL, server->priv->authority_file, &error);
+        if (error)
             g_debug ("Error removing authority: %s", error->message);
         g_clear_error (&error);
 
@@ -334,7 +335,8 @@ write_authority_file (XServerLocal *server)
     g_debug ("Writing X server authority to %s", path);
     g_free (path);
 
-    if (!xauth_write (authority, XAUTH_WRITE_MODE_REPLACE, NULL, server->priv->authority_file, &error))
+    xauth_write (authority, XAUTH_WRITE_MODE_REPLACE, NULL, server->priv->authority_file, &error);
+    if (error)
         g_warning ("Failed to write authority: %s", error->message);
     g_clear_error (&error);
 }
@@ -450,12 +452,13 @@ xserver_local_start (DisplayServer *display_server)
                             NULL,
                             command->str,
                             &error);
-    g_string_free (command, TRUE);
-    if (!result)
+    if (error)
         g_warning ("Unable to create display: %s", error->message);
-    else
-        g_debug ("Waiting for ready signal from X server :%d", xserver_get_display_number (XSERVER (server)));
     g_clear_error (&error);
+    g_string_free (command, TRUE);
+
+    if (result)
+        g_debug ("Waiting for ready signal from X server :%d", xserver_get_display_number (XSERVER (server)));
 
     if (!result)
         stopped_cb (server->priv->xserver_process, XSERVER_LOCAL (server));
index e5faf375cf0d3fdd26698cddacc3af1c0f206ec2..8e7f5e396b1f44ba732f8bfcdc71425b497fc0e7 100644 (file)
@@ -76,7 +76,8 @@ xsession_start (Session *session)
         g_free (path);
 
         g_debug ("Adding session authority to %s", g_file_get_path (XSESSION (session)->priv->authority_file));
-        if (!xauth_write (XSESSION (session)->priv->authority, XAUTH_WRITE_MODE_REPLACE, session_get_user (session), XSESSION (session)->priv->authority_file, &error))
+        xauth_write (XSESSION (session)->priv->authority, XAUTH_WRITE_MODE_REPLACE, session_get_user (session), XSESSION (session)->priv->authority_file, &error);
+        if (error)
             g_warning ("Failed to write authority: %s", error->message);
         g_clear_error (&error);
     }