diff options
Diffstat (limited to 'x11/gdm/files/patch-daemon_gdm-session-worker.c')
-rw-r--r-- | x11/gdm/files/patch-daemon_gdm-session-worker.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/x11/gdm/files/patch-daemon_gdm-session-worker.c b/x11/gdm/files/patch-daemon_gdm-session-worker.c index 0c56d5da4419..362a116eaa79 100644 --- a/x11/gdm/files/patch-daemon_gdm-session-worker.c +++ b/x11/gdm/files/patch-daemon_gdm-session-worker.c @@ -1,5 +1,5 @@ ---- daemon/gdm-session-worker.c.orig 2009-04-14 10:01:14.000000000 -0400 -+++ daemon/gdm-session-worker.c 2009-05-31 15:52:10.000000000 -0400 +--- daemon/gdm-session-worker.c.orig 2009-09-21 22:05:27.000000000 +0200 ++++ daemon/gdm-session-worker.c 2009-09-22 12:33:59.000000000 +0200 @@ -31,6 +31,9 @@ #include <errno.h> #include <grp.h> @@ -8,9 +8,9 @@ +#include <login_cap.h> +#endif - #include <security/pam_appl.h> - -@@ -332,7 +335,7 @@ gdm_session_execute (const char *file, + #ifdef HAVE_LOGINDEVPERM + #include <libdevinfo.h> +@@ -340,7 +343,7 @@ gdm_session_execute (const char *file, * what to search if PATH is unset. POSIX may, dunno. */ @@ -19,8 +19,8 @@ } len = strlen (file) + 1; -@@ -1757,11 +1760,12 @@ gdm_session_worker_start_user_session (G - char **environment; +@@ -1995,15 +1998,16 @@ gdm_session_worker_start_user_session (G + char *cachedirname; char *home_dir; int fd; +#ifdef HAVE_LOGINCAP @@ -28,6 +28,10 @@ + struct passwd *pwent = getpwnam (login); +#endif + /* Make sure cachedir gets created before we drop to user */ + cachedirname = gdm_session_worker_create_cachedir (worker); + g_free (cachedirname); + - if (setuid (worker->priv->uid) < 0) { - g_debug ("GdmSessionWorker: could not reset uid - %s", g_strerror (errno)); - _exit (1); @@ -36,7 +40,7 @@ if (setsid () < 0) { g_debug ("GdmSessionWorker: could not set pid '%u' as leader of new session and process group - %s", -@@ -1769,6 +1773,28 @@ gdm_session_worker_start_user_session (G +@@ -2011,6 +2015,28 @@ gdm_session_worker_start_user_session (G _exit (2); } |