summaryrefslogtreecommitdiff
path: root/x11/gdm/files/patch-daemon_gdm-session-worker.c
diff options
context:
space:
mode:
authorKoop Mast <kwm@FreeBSD.org>2013-03-19 10:40:22 +0000
committerKoop Mast <kwm@FreeBSD.org>2013-03-19 10:40:22 +0000
commit2a3357182d8cb640f374f8c60b71b6c99ec43843 (patch)
tree7a5f4c1c91d14d9fcab2b30589db732cde4a3725 /x11/gdm/files/patch-daemon_gdm-session-worker.c
parentConvert 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.c54
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 */