gdm r6039 - in trunk: . daemon



Author: mccann
Date: Tue Mar 18 02:15:37 2008
New Revision: 6039
URL: http://svn.gnome.org/viewvc/gdm?rev=6039&view=rev

Log:
2008-03-17  William Jon McCann  <jmccann redhat com>

	* daemon/gdm-session-worker.c: (on_start_program):
	* daemon/gdm-simple-slave.c: (start_session_timeout),
	(on_session_accreditation_failed), (on_greeter_cancel):
	Close the session immediately after migration so there
	are no races.



Modified:
   trunk/ChangeLog
   trunk/daemon/gdm-session-worker.c
   trunk/daemon/gdm-simple-slave.c

Modified: trunk/daemon/gdm-session-worker.c
==============================================================================
--- trunk/daemon/gdm-session-worker.c	(original)
+++ trunk/daemon/gdm-session-worker.c	Tue Mar 18 02:15:37 2008
@@ -2093,6 +2093,7 @@
 
                 if (worker->priv->arguments != NULL) {
                         g_strfreev (worker->priv->arguments);
+                        worker->priv->arguments = NULL;
                 }
 
                 parse_error = NULL;

Modified: trunk/daemon/gdm-simple-slave.c
==============================================================================
--- trunk/daemon/gdm-simple-slave.c	(original)
+++ trunk/daemon/gdm-simple-slave.c	Tue Mar 18 02:15:37 2008
@@ -281,6 +281,12 @@
         migrated = try_migrate_session (slave);
         g_debug ("GdmSimpleSlave: migrated: %d", migrated);
         if (migrated) {
+                if (slave->priv->session != NULL) {
+                        gdm_session_close (GDM_SESSION (slave->priv->session));
+                        g_object_unref (slave->priv->session);
+                        slave->priv->session = NULL;
+                }
+
                 queue_greeter_reset (slave);
                 goto out;
         }
@@ -339,6 +345,12 @@
                 gdm_greeter_server_problem (slave->priv->greeter_server, _("Unable establish credentials"));
         }
 
+        if (slave->priv->session != NULL) {
+                gdm_session_close (GDM_SESSION (slave->priv->session));
+                g_object_unref (slave->priv->session);
+                slave->priv->session = NULL;
+        }
+
         queue_greeter_reset (slave);
 }
 
@@ -690,6 +702,7 @@
         if (slave->priv->session != NULL) {
                 gdm_session_close (GDM_SESSION (slave->priv->session));
                 g_object_unref (slave->priv->session);
+                slave->priv->session = NULL;
         }
 
         create_new_session (slave);



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