diff options
author | Koop Mast <kwm@FreeBSD.org> | 2013-03-19 10:40:22 +0000 |
---|---|---|
committer | Koop Mast <kwm@FreeBSD.org> | 2013-03-19 10:40:22 +0000 |
commit | 2a3357182d8cb640f374f8c60b71b6c99ec43843 (patch) | |
tree | 7a5f4c1c91d14d9fcab2b30589db732cde4a3725 /x11/gdm/files/patch-daemon_gdm-session-worker.c | |
parent | Convert to optionsNG, switch to USES=pathfix. Remove RUN_DEPEND for (diff) |
Convert almost all gnome@ ports to OptionsNG, trim header, use USES=pathfix
instead of gnomehack and pet portlint.
Add conflicts with future gnome3 versions.
Reviewed by: miwi, bapt
Notes
Notes:
svn path=/head/; revision=314632
Diffstat (limited to 'x11/gdm/files/patch-daemon_gdm-session-worker.c')
-rw-r--r-- | x11/gdm/files/patch-daemon_gdm-session-worker.c | 54 |
1 files changed, 5 insertions, 49 deletions
diff --git a/x11/gdm/files/patch-daemon_gdm-session-worker.c b/x11/gdm/files/patch-daemon_gdm-session-worker.c index 31baf67050ed..a15c91658554 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 2010-08-11 13:40:07.000000000 -0400 -+++ daemon/gdm-session-worker.c 2011-08-13 23:37:04.000000000 -0400 +--- daemon/gdm-session-worker.c.orig 2011-06-02 09:50:17.000000000 -0500 ++++ daemon/gdm-session-worker.c 2011-06-24 17:59:50.000000000 -0500 @@ -31,6 +31,9 @@ #include <errno.h> #include <grp.h> @@ -10,7 +10,7 @@ #ifdef HAVE_LOGINDEVPERM #include <libdevinfo.h> -@@ -341,7 +344,7 @@ gdm_session_execute (const char *file, +@@ -341,7 +344,7 @@ * what to search if PATH is unset. POSIX may, dunno. */ @@ -19,50 +19,7 @@ } len = strlen (file) + 1; -@@ -1035,17 +1038,6 @@ gdm_cache_copy_file (GdmSessionWorker *w - error->message); - g_error_free (error); - } else { -- int res; -- -- res = chown (cachefilename, -- worker->priv->uid, -- worker->priv->gid); -- if (res == -1) { -- g_warning ("GdmSessionWorker: Error setting owner of cache file: %s", -- g_strerror (errno)); -- } -- -- g_chmod (cachefilename, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); - g_debug ("Copy successful"); - } - -@@ -1183,7 +1175,23 @@ gdm_session_worker_uninitialize_pam (Gdm - return; - - if (worker->priv->state >= GDM_SESSION_WORKER_STATE_SESSION_OPENED) { -- gdm_session_worker_cache_userfiles (worker); -+ pid_t pid; -+ -+ pid = fork (); -+ -+ if (pid == 0) { -+ if (setuid (worker->priv->uid) < 0) { -+ g_debug ("GdmSessionWorker: could not reset uid: %s", g_strerror (errno)); -+ _exit (1); -+ } -+ -+ gdm_session_worker_cache_userfiles (worker); -+ _exit (0); -+ } -+ -+ if (pid > 0) { -+ gdm_wait_on_pid (pid); -+ } - pam_close_session (worker->priv->pam_handle, 0); - gdm_session_auditor_report_logout (worker->priv->auditor); - -@@ -2027,15 +2035,16 @@ gdm_session_worker_start_user_session (G +@@ -2032,15 +2035,16 @@ char *cachedirname; char *home_dir; int fd; @@ -83,7 +40,7 @@ if (setsid () < 0) { g_debug ("GdmSessionWorker: could not set pid '%u' as leader of new session and process group - %s", -@@ -2043,6 +2052,26 @@ gdm_session_worker_start_user_session (G +@@ -2048,6 +2052,25 @@ _exit (2); } @@ -93,7 +50,6 @@ + g_debug ("%s: setusercontext () failed for %s. " + "Aborting.", "gdm_session_worker_start_user_session", + login ? login : "(null)"); -+ _exit (1); + } + + /* Propagate PATH environment variable from user context to child processes */ |