Revision
22976
Author
zarzycki@apple.com
Date
2006-12-12 09:08:30 -0800 (Tue, 12 Dec 2006)

Log Message

<rdar://problem/4877142> Leopard9A321: SHELL environment variable not set

Modified Paths

Diff

Modified: trunk/launchd/src/launchd_core_logic.c (22975 => 22976)


--- trunk/launchd/src/launchd_core_logic.c	2006-12-12 16:49:59 UTC (rev 22975)
+++ trunk/launchd/src/launchd_core_logic.c	2006-12-12 17:08:30 UTC (rev 22976)
@@ -1888,6 +1888,7 @@
 job_postfork_become_user(job_t j)
 {
 	char loginname[2000];
+	char shellpath[PATH_MAX];
 	char homedir[PATH_MAX];
 	struct passwd *pwe;
 	gid_t desired_gid = -1;
@@ -1911,6 +1912,7 @@
 		return;
 	}
 
+	strlcpy(shellpath, pwe->pw_shell, sizeof(shellpath));
 	strlcpy(loginname, pwe->pw_name, sizeof(loginname));
 	strlcpy(homedir, pwe->pw_dir, sizeof(homedir));
 
@@ -1960,6 +1962,7 @@
 		_exit(EXIT_FAILURE);
 	}
 
+	setenv("SHELL", shellpath, 0);
 	setenv("HOME", homedir, 0);
 	setenv("USER", loginname, 0);
 	setenv("LOGNAME", loginname, 0);