Revision
22964
Author
zarzycki@apple.com
Date
2006-12-04 09:24:22 -0800 (Mon, 04 Dec 2006)

Log Message

<rdar://problem/4860467> HOME environment variable not set in miniterm when run as loginitem

Modified Paths

Diff

Modified: trunk/launchd/src/launchd_core_logic.c (22963 => 22964)


--- trunk/launchd/src/launchd_core_logic.c	2006-12-04 16:51:34 UTC (rev 22963)
+++ trunk/launchd/src/launchd_core_logic.c	2006-12-04 17:24:22 UTC (rev 22964)
@@ -1921,6 +1921,7 @@
 job_postfork_become_user(job_t j)
 {
 	char loginname[2000];
+	char homedir[PATH_MAX];
 	struct passwd *pwe;
 	gid_t desired_gid = -1;
 	uid_t desired_uid = -1;
@@ -1944,6 +1945,7 @@
 	}
 
 	strlcpy(loginname, pwe->pw_name, sizeof(loginname));
+	strlcpy(homedir, pwe->pw_dir, sizeof(homedir));
 
 	if (pwe->pw_expire && time(NULL) >= pwe->pw_expire) {
 		job_log(j, LOG_ERR, "Expired account");
@@ -1984,6 +1986,8 @@
 		job_log_error(j, LOG_ERR, "setuid(%u)", desired_uid);
 		_exit(EXIT_FAILURE);
 	}
+
+	setenv("HOME", homedir, 0);
 }
 
 void