summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog23
-rw-r--r--daemon/gdm-chooser-server.c12
-rw-r--r--daemon/gdm-product-slave.c8
-rw-r--r--daemon/gdm-session-worker.c12
-rw-r--r--daemon/gdm-slave.c12
-rw-r--r--gui/simple-chooser/gdm-chooser-client.c8
-rw-r--r--gui/simple-greeter/gdm-greeter-client.c12
-rw-r--r--gui/simple-greeter/gdm-greeter-session.c4
-rw-r--r--gui/simple-greeter/gdm-user-manager.c8
-rw-r--r--utils/gdmflexiserver.c55
10 files changed, 132 insertions, 22 deletions
diff --git a/ChangeLog b/ChangeLog
index f52a8fb0..6eb63ec4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+2008-03-12 William Jon McCann <jmccann@redhat.com>
+
+ * daemon/gdm-chooser-server.c: (handle_select_hostname),
+ (handle_disconnect), (do_introspect):
+ * daemon/gdm-product-slave.c: (send_dbus_string_method),
+ (send_dbus_void_method):
+ * daemon/gdm-session-worker.c: (send_dbus_string_method),
+ (send_dbus_int_method), (send_dbus_void_method):
+ * daemon/gdm-slave.c: (activate_session_id), (session_unlock):
+ * gui/simple-chooser/gdm-chooser-client.c:
+ (send_dbus_string_method), (send_dbus_void_method):
+ * gui/simple-greeter/gdm-greeter-client.c:
+ (send_dbus_string_method), (send_dbus_bool_method),
+ (send_dbus_void_method):
+ * gui/simple-greeter/gdm-greeter-session.c:
+ (send_dbus_string_method):
+ * gui/simple-greeter/gdm-user-manager.c: (activate_session_id):
+ * utils/gdmflexiserver.c: (create_transient_display),
+ (get_current_session_id), (get_seat_id_for_session),
+ (activate_session_id), (session_is_login_window),
+ (seat_can_activate_sessions):
+ Fix a few leaks and make sure we don't unref null replies.
+
2008-03-11 Ray Strode <rstrode@redhat.com>
* gui/simple-greeter/gdm-greeter-login-window.c:
diff --git a/daemon/gdm-chooser-server.c b/daemon/gdm-chooser-server.c
index 8d2576b8..48beb2cf 100644
--- a/daemon/gdm-chooser-server.c
+++ b/daemon/gdm-chooser-server.c
@@ -131,7 +131,9 @@ handle_select_hostname (GdmChooserServer *chooser_server,
reply = dbus_message_new_method_return (message);
dbus_connection_send (connection, reply, NULL);
- dbus_message_unref (reply);
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
g_signal_emit (chooser_server, signals [HOSTNAME_SELECTED], 0, text);
@@ -147,7 +149,9 @@ handle_disconnect (GdmChooserServer *chooser_server,
reply = dbus_message_new_method_return (message);
dbus_connection_send (connection, reply, NULL);
- dbus_message_unref (reply);
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
g_signal_emit (chooser_server, signals [DISCONNECTED], 0);
@@ -219,7 +223,9 @@ do_introspect (DBusConnection *connection,
g_error ("No memory");
}
- dbus_message_unref (reply);
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
return DBUS_HANDLER_RESULT_HANDLED;
}
diff --git a/daemon/gdm-product-slave.c b/daemon/gdm-product-slave.c
index 6d483838..fbde8fe2 100644
--- a/daemon/gdm-product-slave.c
+++ b/daemon/gdm-product-slave.c
@@ -139,7 +139,9 @@ send_dbus_string_method (DBusConnection *connection,
error.message);
return FALSE;
}
- dbus_message_unref (reply);
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
dbus_connection_flush (connection);
return TRUE;
@@ -178,7 +180,9 @@ send_dbus_void_method (DBusConnection *connection,
error.message);
return FALSE;
}
- dbus_message_unref (reply);
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
dbus_connection_flush (connection);
return TRUE;
diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
index f8bce596..462cc3a0 100644
--- a/daemon/gdm-session-worker.c
+++ b/daemon/gdm-session-worker.c
@@ -381,7 +381,9 @@ send_dbus_string_method (DBusConnection *connection,
error.message);
return FALSE;
}
- dbus_message_unref (reply);
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
dbus_connection_flush (connection);
return TRUE;
@@ -418,7 +420,9 @@ send_dbus_int_method (DBusConnection *connection,
-1,
&error);
dbus_message_unref (message);
- dbus_message_unref (reply);
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
dbus_connection_flush (connection);
if (dbus_error_is_set (&error)) {
@@ -456,7 +460,9 @@ send_dbus_void_method (DBusConnection *connection,
-1,
&error);
dbus_message_unref (message);
- dbus_message_unref (reply);
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
dbus_connection_flush (connection);
if (dbus_error_is_set (&error)) {
diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c
index e717df4d..bc2a9e0e 100644
--- a/daemon/gdm-slave.c
+++ b/daemon/gdm-slave.c
@@ -954,6 +954,7 @@ activate_session_id (GdmSlave *slave,
gboolean ret;
ret = FALSE;
+ reply = NULL;
dbus_error_init (&local_error);
message = dbus_message_new_method_call ("org.freedesktop.ConsoleKit",
@@ -986,6 +987,13 @@ activate_session_id (GdmSlave *slave,
ret = TRUE;
out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
+
return ret;
}
@@ -1012,7 +1020,9 @@ session_unlock (GdmSlave *slave,
message,
-1, &error);
dbus_message_unref (message);
- dbus_message_unref (reply);
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
dbus_connection_flush (dbus_g_connection_get_connection (slave->priv->connection));
if (dbus_error_is_set (&error)) {
diff --git a/gui/simple-chooser/gdm-chooser-client.c b/gui/simple-chooser/gdm-chooser-client.c
index 33ac53bb..7c1dfff9 100644
--- a/gui/simple-chooser/gdm-chooser-client.c
+++ b/gui/simple-chooser/gdm-chooser-client.c
@@ -119,7 +119,9 @@ send_dbus_string_method (DBusConnection *connection,
error.message);
return FALSE;
}
- dbus_message_unref (reply);
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
dbus_connection_flush (connection);
return TRUE;
@@ -159,7 +161,9 @@ send_dbus_void_method (DBusConnection *connection,
error.message);
return FALSE;
}
- dbus_message_unref (reply);
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
dbus_connection_flush (connection);
return TRUE;
diff --git a/gui/simple-greeter/gdm-greeter-client.c b/gui/simple-greeter/gdm-greeter-client.c
index 3e55403c..aaa6370b 100644
--- a/gui/simple-greeter/gdm-greeter-client.c
+++ b/gui/simple-greeter/gdm-greeter-client.c
@@ -293,7 +293,9 @@ send_dbus_string_method (DBusConnection *connection,
error.message);
return FALSE;
}
- dbus_message_unref (reply);
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
dbus_connection_flush (connection);
return TRUE;
@@ -339,7 +341,9 @@ send_dbus_bool_method (DBusConnection *connection,
error.message);
return FALSE;
}
- dbus_message_unref (reply);
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
dbus_connection_flush (connection);
return TRUE;
@@ -378,7 +382,9 @@ send_dbus_void_method (DBusConnection *connection,
error.message);
return FALSE;
}
- dbus_message_unref (reply);
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
dbus_connection_flush (connection);
return TRUE;
diff --git a/gui/simple-greeter/gdm-greeter-session.c b/gui/simple-greeter/gdm-greeter-session.c
index 8a6e3e2a..9707e89a 100644
--- a/gui/simple-greeter/gdm-greeter-session.c
+++ b/gui/simple-greeter/gdm-greeter-session.c
@@ -595,7 +595,9 @@ send_dbus_string_method (DBusConnection *connection,
error.message);
return FALSE;
}
- dbus_message_unref (reply);
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
dbus_connection_flush (connection);
return TRUE;
diff --git a/gui/simple-greeter/gdm-user-manager.c b/gui/simple-greeter/gdm-user-manager.c
index 5e6ce6f2..fe7dccbf 100644
--- a/gui/simple-greeter/gdm-user-manager.c
+++ b/gui/simple-greeter/gdm-user-manager.c
@@ -216,6 +216,7 @@ activate_session_id (GdmUserManager *manager,
gboolean ret;
ret = FALSE;
+ reply = NULL;
dbus_error_init (&local_error);
message = dbus_message_new_method_call ("org.freedesktop.ConsoleKit",
@@ -248,6 +249,13 @@ activate_session_id (GdmUserManager *manager,
ret = TRUE;
out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
+
return ret;
}
diff --git a/utils/gdmflexiserver.c b/utils/gdmflexiserver.c
index e1666f8d..e57f6436 100644
--- a/utils/gdmflexiserver.c
+++ b/utils/gdmflexiserver.c
@@ -147,6 +147,7 @@ create_transient_display (DBusConnection *connection)
const char *value;
ret = FALSE;
+ reply = NULL;
dbus_error_init (&local_error);
message = dbus_message_new_method_call (GDM_DBUS_NAME,
@@ -174,10 +175,15 @@ create_transient_display (DBusConnection *connection)
dbus_message_iter_get_basic (&iter, &value);
g_debug ("Started %s", value);
- dbus_message_unref (reply);
-
ret = TRUE;
out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
+
return ret;
}
@@ -193,6 +199,7 @@ get_current_session_id (DBusConnection *connection,
const char *value;
ret = FALSE;
+ reply = NULL;
dbus_error_init (&local_error);
message = dbus_message_new_method_call (CK_NAME,
@@ -221,10 +228,16 @@ get_current_session_id (DBusConnection *connection,
if (session_id != NULL) {
*session_id = g_strdup (value);
}
- dbus_message_unref (reply);
ret = TRUE;
out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
+
return ret;
}
@@ -241,6 +254,7 @@ get_seat_id_for_session (DBusConnection *connection,
const char *value;
ret = FALSE;
+ reply = NULL;
dbus_error_init (&local_error);
message = dbus_message_new_method_call (CK_NAME,
@@ -269,10 +283,16 @@ get_seat_id_for_session (DBusConnection *connection,
if (seat_id != NULL) {
*seat_id = g_strdup (value);
}
- dbus_message_unref (reply);
ret = TRUE;
out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
+
return ret;
}
@@ -306,6 +326,7 @@ activate_session_id (DBusConnection *connection,
gboolean ret;
ret = FALSE;
+ reply = NULL;
g_debug ("Switching to session %s", session_id);
@@ -340,6 +361,13 @@ activate_session_id (DBusConnection *connection,
ret = TRUE;
out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
+
return ret;
}
@@ -355,6 +383,7 @@ session_is_login_window (DBusConnection *connection,
const char *value;
ret = FALSE;
+ reply = NULL;
dbus_error_init (&local_error);
message = dbus_message_new_method_call (CK_NAME,
@@ -385,10 +414,15 @@ session_is_login_window (DBusConnection *connection,
goto out;
}
- dbus_message_unref (reply);
-
ret = TRUE;
out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
+
return ret;
}
@@ -403,6 +437,7 @@ seat_can_activate_sessions (DBusConnection *connection,
gboolean can_activate;
can_activate = FALSE;
+ reply = NULL;
dbus_error_init (&local_error);
message = dbus_message_new_method_call (CK_NAME,
@@ -428,9 +463,15 @@ seat_can_activate_sessions (DBusConnection *connection,
dbus_message_iter_init (reply, &iter);
dbus_message_iter_get_basic (&iter, &can_activate);
- dbus_message_unref (reply);
out:
+ if (message != NULL) {
+ dbus_message_unref (message);
+ }
+ if (reply != NULL) {
+ dbus_message_unref (reply);
+ }
+
return can_activate;
}