[launchd-changes] [22964] trunk/launchd/src/launchd_core_logic.c

source_changes at macosforge.org source_changes at macosforge.org
Mon Dec 4 09:24:23 PST 2006


Revision: 22964
          http://trac.macosforge.org/projects/launchd/changeset/22964
Author:   zarzycki at 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:
--------------
    trunk/launchd/src/launchd_core_logic.c

Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20061204/ea1c88bb/attachment.html


More information about the launchd-changes mailing list