diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | common/gdm-signal-handler.c | 3 | ||||
-rw-r--r-- | daemon/gdm-display-access-file.c | 2 | ||||
-rw-r--r-- | daemon/gdm-display.c | 39 | ||||
-rw-r--r-- | daemon/gdm-slave.c | 11 | ||||
-rw-r--r-- | daemon/main.c | 1 |
6 files changed, 46 insertions, 20 deletions
@@ -1,5 +1,15 @@ 2008-03-17 William Jon McCann <jmccann@redhat.com> + * common/gdm-signal-handler.c: (gdm_signal_handler_finalize): + * daemon/gdm-display.c: (gdm_display_real_create_authority), + (gdm_display_real_add_user_authorization), + (gdm_display_constructor): + * daemon/gdm-slave.c: (gdm_slave_finalize): + * daemon/main.c: (main): + Fix a few more mem and fd leaks. + +2008-03-17 William Jon McCann <jmccann@redhat.com> + * common/gdm-common.c: (gdm_wait_on_pid), (gdm_signal_pid), (_read_bytes), (gdm_generate_random_bytes): * common/gdm-common.h: diff --git a/common/gdm-signal-handler.c b/common/gdm-signal-handler.c index 91d90308..c46df6f2 100644 --- a/common/gdm-signal-handler.c +++ b/common/gdm-signal-handler.c @@ -519,6 +519,9 @@ gdm_signal_handler_finalize (GObject *object) } g_hash_table_destroy (handler->priv->action_lookup); + close (signal_pipes [0]); + close (signal_pipes [1]); + G_OBJECT_CLASS (gdm_signal_handler_parent_class)->finalize (object); } diff --git a/daemon/gdm-display-access-file.c b/daemon/gdm-display-access-file.c index 8296907f..7ee6f827 100644 --- a/daemon/gdm-display-access-file.c +++ b/daemon/gdm-display-access-file.c @@ -339,7 +339,7 @@ gdm_display_access_file_add_display (GdmDisplayAccessFile *file, gsize *cookie_size, GError **error) { - GError *add_error; + GError *add_error; gboolean display_added; g_return_val_if_fail (file != NULL, FALSE); diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c index 99a9850a..0c5efc29 100644 --- a/daemon/gdm-display.c +++ b/daemon/gdm-display.c @@ -154,7 +154,8 @@ static gboolean gdm_display_real_create_authority (GdmDisplay *display) { GdmDisplayAccessFile *access_file; - GError *error; + GError *error; + gboolean res; g_return_val_if_fail (GDM_IS_DISPLAY (display), FALSE); g_return_val_if_fail (display->priv->access_file == NULL, FALSE); @@ -163,15 +164,20 @@ gdm_display_real_create_authority (GdmDisplay *display) access_file = _create_access_file_for_user (display, "gdm", &error); if (access_file == NULL) { - g_critical ("could not create display access file: %s", error->message); - g_error_free (error); - return FALSE; + g_critical ("could not create display access file: %s", error->message); + g_error_free (error); + return FALSE; } - if (!gdm_display_access_file_add_display (access_file, display, - &display->priv->x11_cookie, - &display->priv->x11_cookie_size, - &error)) { + g_free (display->priv->x11_cookie); + display->priv->x11_cookie = NULL; + res = gdm_display_access_file_add_display (access_file, + display, + &display->priv->x11_cookie, + &display->priv->x11_cookie_size, + &error); + + if (! res) { g_critical ("could not add display to access file: %s", error->message); g_error_free (error); @@ -207,6 +213,7 @@ gdm_display_real_add_user_authorization (GdmDisplay *display, { GdmDisplayAccessFile *access_file; GError *access_file_error; + gboolean res; g_return_val_if_fail (GDM_IS_DISPLAY (display), FALSE); g_return_val_if_fail (display->priv->access_file != NULL, FALSE); @@ -219,15 +226,16 @@ gdm_display_real_add_user_authorization (GdmDisplay *display, &access_file_error); if (access_file == NULL) { - g_propagate_error (error, access_file_error); - return FALSE; + g_propagate_error (error, access_file_error); + return FALSE; } - if (!gdm_display_access_file_add_display_with_cookie (access_file, - display, - display->priv->x11_cookie, - display->priv->x11_cookie_size, - &access_file_error)) { + res = gdm_display_access_file_add_display_with_cookie (access_file, + display, + display->priv->x11_cookie, + display->priv->x11_cookie_size, + &access_file_error); + if (! res) { g_debug ("GdmDisplay: Unable to add user authorization for %s: %s", username, access_file_error->message); @@ -822,6 +830,7 @@ gdm_display_constructor (GType type, n_construct_properties, construct_properties)); + g_free (display->priv->id); display->priv->id = g_strdup_printf ("/org/gnome/DisplayManager/Display%u", get_next_display_serial ()); res = register_display (display); diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c index f2e4cb30..a71214d8 100644 --- a/daemon/gdm-slave.c +++ b/daemon/gdm-slave.c @@ -88,10 +88,6 @@ struct GdmSlavePrivate char *parent_display_name; char *parent_display_x11_authority_file; - /* user selected */ - char *selected_session; - char *selected_language; - DBusGProxy *display_proxy; DBusGConnection *connection; }; @@ -1357,7 +1353,14 @@ gdm_slave_finalize (GObject *object) gdm_slave_real_stop (slave); + g_free (slave->priv->id); g_free (slave->priv->display_id); + g_free (slave->priv->display_name); + g_free (slave->priv->display_hostname); + g_free (slave->priv->display_seat_id); + g_free (slave->priv->display_x11_authority_file); + g_free (slave->priv->parent_display_name); + g_free (slave->priv->parent_display_x11_authority_file); G_OBJECT_CLASS (gdm_slave_parent_class)->finalize (object); } diff --git a/daemon/main.c b/daemon/main.c index e945d056..fb92ad8d 100644 --- a/daemon/main.c +++ b/daemon/main.c @@ -645,6 +645,7 @@ main (int argc, } gdm_settings_direct_shutdown (); + gdm_log_shutdown (); g_main_loop_unref (main_loop); |