summaryrefslogtreecommitdiff
path: root/x11/xdm/files
diff options
context:
space:
mode:
authorFlorent Thoumie <flz@FreeBSD.org>2007-10-09 19:26:51 +0000
committerFlorent Thoumie <flz@FreeBSD.org>2007-10-09 19:26:51 +0000
commit451bceb7cc5e939fe5acadc7fae251b2655332c4 (patch)
treef480a416fb9929380d603d77c2ae76b1d4b0d2ba /x11/xdm/files
parentUpdate xinit to 1.0.7. (diff)
- Fix configuration file location.
- Respect user context.
Notes
Notes: svn path=/head/; revision=201205
Diffstat (limited to 'x11/xdm/files')
-rw-r--r--x11/xdm/files/patch-session.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/x11/xdm/files/patch-session.c b/x11/xdm/files/patch-session.c
new file mode 100644
index 000000000000..6eb34ed2346f
--- /dev/null
+++ b/x11/xdm/files/patch-session.c
@@ -0,0 +1,27 @@
+--- session.c.orig Sun Jun 3 22:49:51 2007
++++ session.c Sun Jun 3 22:56:06 2007
+@@ -543,6 +543,7 @@
+ pid_t pid;
+ #ifdef HAS_SETUSERCONTEXT
+ struct passwd* pwd;
++ extern char **environ;
+ #endif
+ #ifdef USE_PAM
+ pam_handle_t *pamh = thepamh ();
+@@ -657,6 +660,8 @@
+ * Set the user's credentials: uid, gid, groups,
+ * environment variables, resource limits, and umask.
+ */
++ /* destroy user environment before calling setusercontext */
++ environ = verify->userEnviron;
+ pwd = getpwnam(name);
+ if (pwd) {
+ if (setusercontext(NULL, pwd, pwd->pw_uid, LOGIN_SETALL) < 0) {
+@@ -664,6 +669,7 @@
+ errno);
+ return (0);
+ }
++ verify->userEnviron = environ;
+ endpwent();
+ } else {
+ LogError ("getpwnam for \"%s\" failed, errno=%d\n", name, errno);