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

source_changes at macosforge.org source_changes at macosforge.org
Fri Jun 1 10:54:46 PDT 2007


Revision: 23271
          http://trac.macosforge.org/projects/launchd/changeset/23271
Author:   zarzycki at apple.com
Date:     2007-06-01 10:54:46 -0700 (Fri, 01 Jun 2007)

Log Message:
-----------
<rdar://problem/5225292> WWDC: launchd (per-user version) not created for root logins?

Modified Paths:
--------------
    trunk/launchd/src/launchd_core_logic.c

Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c	2007-05-31 20:38:11 UTC (rev 23270)
+++ trunk/launchd/src/launchd_core_logic.c	2007-06-01 17:54:46 UTC (rev 23271)
@@ -5327,9 +5327,27 @@
 		job_t j2;
 
 		if (j->mgr->session_initialized) {
-			job_log(j, LOG_ERR, "Tried to initialize an already setup session!");
-			kr = BOOTSTRAP_NOT_PRIVILEGED;
-			goto out;
+			if (ldc.uid == 0 && getpid() == 1) {
+				if (strcmp(j->mgr->name, VPROCMGR_SESSION_LOGINWINDOW) == 0) {
+					job_t ji, jn;
+
+					LIST_FOREACH_SAFE(ji, &j->mgr->jobs, sle, jn) {
+						if (!ji->anonymous) {
+							job_remove(ji);
+						}
+					}
+				} else if (strcmp(j->mgr->name, VPROCMGR_SESSION_AQUA) == 0) {
+					return 0;
+				} else {
+					job_log(j, LOG_ERR, "Tried to initialize an already setup session!");
+					kr = BOOTSTRAP_NOT_PRIVILEGED;
+					goto out;
+				}
+			} else {
+				job_log(j, LOG_ERR, "Tried to initialize an already setup session!");
+				kr = BOOTSTRAP_NOT_PRIVILEGED;
+				goto out;
+			}
 		}
 
 		jobmgr_log(j->mgr, LOG_DEBUG, "Renaming to: %s", session_type);

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


More information about the launchd-changes mailing list