[gdm] Clear out session_conversation when the worker exits



commit 69aa70a5a0a26afac30a5852b89cddade598a47f
Author: Giovanni Campagna <gcampagna src gnome org>
Date:   Tue Sep 18 22:29:07 2012 +0200

    Clear out session_conversation when the worker exits
    
    The conversation is freed at the end of that callback, so the pointer
    would be dangling. Among other things, this fixes a duplicate wtmp record,
    as session dispose would find that logout was already recorded.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=684326

 daemon/gdm-session.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
---
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index 9a134ff..ce16972 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -1702,6 +1702,7 @@ worker_exited (GdmSessionWorkerJob    *job,
         g_object_ref (conversation->job);
         if (self->priv->session_conversation == conversation) {
                 g_signal_emit (self, signals[SESSION_EXITED], 0, code);
+                self->priv->session_conversation = NULL;
         }
 
         g_hash_table_steal (self->priv->conversations, conversation->service_name);
@@ -1734,6 +1735,7 @@ worker_died (GdmSessionWorkerJob    *job,
         g_object_ref (conversation->job);
         if (self->priv->session_conversation == conversation) {
                 g_signal_emit (self, signals[SESSION_DIED], 0, signum);
+                self->priv->session_conversation = NULL;
         }
 
         g_hash_table_steal (self->priv->conversations, conversation->service_name);



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