siosm / rpms / gdm

Forked from rpms/gdm 2 years ago
Clone
Blob Blame History Raw
--- gdm-2.21.10/daemon/gdm-session-worker.c	(revision 6145)
+++ gdm-2.21.10/daemon/gdm-session-worker.c	(working copy)
@@ -111,6 +111,7 @@ struct GdmSessionWorkerPrivate
         char             *display_device;
         char             *hostname;
         char             *username;
+        uid_t             uid;
         gboolean          password_is_required;
 
         int               cred_flags;
@@ -1176,6 +1177,7 @@ _change_user (GdmSessionWorker  *worker,
                 return FALSE;
         }
 #endif
+        worker->priv->uid = uid;
 
         if (setgid (gid) < 0) {
                 return FALSE;
@@ -1574,7 +1576,7 @@ gdm_session_worker_start_user_session (G
                 char  *home_dir;
                 int    fd;
 
-                if (setuid (getuid ()) < 0) {
+                if (setuid (worker->priv->uid) < 0) {
                         g_debug ("GdmSessionWorker: could not reset uid - %s", g_strerror (errno));
                         _exit (1);
                 }