summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--common/gdm-signal-handler.c3
-rw-r--r--daemon/gdm-display-access-file.c2
-rw-r--r--daemon/gdm-display.c39
-rw-r--r--daemon/gdm-slave.c11
-rw-r--r--daemon/main.c1
6 files changed, 46 insertions, 20 deletions
diff --git a/ChangeLog b/ChangeLog
index be8768eb..48ecfd60 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);