From source_changes at macosforge.org Tue Aug 5 18:28:02 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Tue, 5 Aug 2008 18:28:02 -0700 (PDT) Subject: [launchd-changes] [23646] branches/SULeopard/launchd/src/launchd_core_logic.c Message-ID: <20080806012802.508971C5E59@beta.macosforge.org> Revision: 23646 http://trac.macosforge.org/projects/launchd/changeset/23646 Author: zarzycki at apple.com Date: 2008-08-05 18:28:01 -0700 (Tue, 05 Aug 2008) Log Message: ----------- gSULeoGaia: Add Common Criteria (a.k.a. BSM a.k.a. audit) support to launchd Modified Paths: -------------- branches/SULeopard/launchd/src/launchd_core_logic.c Modified: branches/SULeopard/launchd/src/launchd_core_logic.c =================================================================== --- branches/SULeopard/launchd/src/launchd_core_logic.c 2008-07-28 18:12:23 UTC (rev 23645) +++ branches/SULeopard/launchd/src/launchd_core_logic.c 2008-08-06 01:28:01 UTC (rev 23646) @@ -420,6 +420,7 @@ static bool job_setup_machport(job_t j); static void job_setup_fd(job_t j, int target_fd, const char *path, int flags); static void job_postfork_become_user(job_t j); +static void job_enable_audit_for_user(job_t j, uid_t u, char *name); static void job_find_and_blame_pids_with_weird_uids(job_t j); static void job_force_sampletool(job_t j); static void job_setup_exception_port(job_t j, task_t target_task); @@ -2925,6 +2926,28 @@ } void +job_enable_audit_for_user(job_t j, uid_t u, char *name) +{ + auditinfo_t auinfo = { + .ai_auid = u, + .ai_asid = j->p, + }; + long au_cond; + + if (!job_assumes(j, auditon(A_GETCOND, &au_cond, sizeof(long)) == 0)) { + _exit(EXIT_FAILURE); + } + + if (au_cond != AUC_NOAUDIT) { + if (!job_assumes(j, au_user_mask(name, &auinfo.ai_mask) == 0)) { + _exit(EXIT_FAILURE); + } else if (!job_assumes(j, setaudit(&auinfo) == 0)) { + _exit(EXIT_FAILURE); + } + } +} + +void job_postfork_become_user(job_t j) { char loginname[2000]; @@ -3001,6 +3024,8 @@ desired_gid = gre->gr_gid; } + job_enable_audit_for_user(j, desired_uid, loginname); + if (!job_assumes(j, setlogin(loginname) != -1)) { _exit(EXIT_FAILURE); } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080805/9287de29/attachment.html From source_changes at macosforge.org Tue Aug 5 18:28:23 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Tue, 5 Aug 2008 18:28:23 -0700 (PDT) Subject: [launchd-changes] [23647] tags/launchd-258.18/ Message-ID: <20080806012824.0A5611C5E7A@beta.macosforge.org> Revision: 23647 http://trac.macosforge.org/projects/launchd/changeset/23647 Author: zarzycki at apple.com Date: 2008-08-05 18:28:23 -0700 (Tue, 05 Aug 2008) Log Message: ----------- "Tagging launchd-258.18 from https://svn.macosforge.org/repository/launchd/branches/SULeopard" Added Paths: ----------- tags/launchd-258.18/ Copied: tags/launchd-258.18 (from rev 23646, branches/SULeopard) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080805/0e659b6f/attachment.html From source_changes at macosforge.org Wed Aug 6 16:51:15 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 6 Aug 2008 16:51:15 -0700 (PDT) Subject: [launchd-changes] [23648] branches/PR-4560719/ Message-ID: <20080806235115.530931CB43E@beta.macosforge.org> Revision: 23648 http://trac.macosforge.org/projects/launchd/changeset/23648 Author: dsorresso at apple.com Date: 2008-08-06 16:51:14 -0700 (Wed, 06 Aug 2008) Log Message: ----------- "Branch for PR-4560719 from https://svn.macosforge.org/repository/launchd/trunk" Added Paths: ----------- branches/PR-4560719/ Copied: branches/PR-4560719 (from rev 23647, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080806/b1b54e0e/attachment.html From source_changes at macosforge.org Wed Aug 6 17:38:13 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 6 Aug 2008 17:38:13 -0700 (PDT) Subject: [launchd-changes] [23649] branches/PR-5874233/ Message-ID: <20080807003813.8423E1CB670@beta.macosforge.org> Revision: 23649 http://trac.macosforge.org/projects/launchd/changeset/23649 Author: dsorresso at apple.com Date: 2008-08-06 17:38:13 -0700 (Wed, 06 Aug 2008) Log Message: ----------- "Branch for PR-5874233 from https://svn.macosforge.org/repository/launchd/trunk" Added Paths: ----------- branches/PR-5874233/ Copied: branches/PR-5874233 (from rev 23648, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080806/96e2314f/attachment.html From source_changes at macosforge.org Thu Aug 7 16:19:56 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Thu, 7 Aug 2008 16:19:56 -0700 (PDT) Subject: [launchd-changes] [23650] branches/PR-5978442/ Message-ID: <20080807231956.AD11C1CE924@beta.macosforge.org> Revision: 23650 http://trac.macosforge.org/projects/launchd/changeset/23650 Author: dsorresso at apple.com Date: 2008-08-07 16:19:55 -0700 (Thu, 07 Aug 2008) Log Message: ----------- "Branch for PR-5978442 from https://svn.macosforge.org/repository/launchd/trunk" Added Paths: ----------- branches/PR-5978442/ Copied: branches/PR-5978442 (from rev 23649, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080807/b010be26/attachment.html From source_changes at macosforge.org Tue Aug 12 18:41:23 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Tue, 12 Aug 2008 18:41:23 -0700 (PDT) Subject: [launchd-changes] [23651] branches/PR-5978442/launchd/src/liblaunch.c Message-ID: <20080813014123.A9F791E43EB@beta.macosforge.org> Revision: 23651 http://trac.macosforge.org/projects/launchd/changeset/23651 Author: dsorresso at apple.com Date: 2008-08-12 18:41:23 -0700 (Tue, 12 Aug 2008) Log Message: ----------- Fix for rdar://problem/5978442: calloc(3)ing instead of malloc(3)ing. Modified Paths: -------------- branches/PR-5978442/launchd/src/liblaunch.c Modified: branches/PR-5978442/launchd/src/liblaunch.c =================================================================== --- branches/PR-5978442/launchd/src/liblaunch.c 2008-08-07 23:19:55 UTC (rev 23650) +++ branches/PR-5978442/launchd/src/liblaunch.c 2008-08-13 01:41:23 UTC (rev 23651) @@ -779,7 +779,7 @@ /* hack, see the above assert to verify "correctness" */ free(lh->sendbuf); - lh->sendbuf = malloc(good_enough_size); + lh->sendbuf = calloc(1, good_enough_size); free(lh->sendfds); lh->sendfds = malloc(4 * 1024); -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080812/34591df3/attachment.html From source_changes at macosforge.org Wed Aug 13 11:23:02 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 13 Aug 2008 11:23:02 -0700 (PDT) Subject: [launchd-changes] [23652] branches/PR-5978442/launchd/src/liblaunch.c Message-ID: <20080813182302.7F4D31E6F96@beta.macosforge.org> Revision: 23652 http://trac.macosforge.org/projects/launchd/changeset/23652 Author: dsorresso at apple.com Date: 2008-08-13 11:23:02 -0700 (Wed, 13 Aug 2008) Log Message: ----------- How about we not page in 10 MB every time we send a Mach message ... Modified Paths: -------------- branches/PR-5978442/launchd/src/liblaunch.c Modified: branches/PR-5978442/launchd/src/liblaunch.c =================================================================== --- branches/PR-5978442/launchd/src/liblaunch.c 2008-08-13 01:41:23 UTC (rev 23651) +++ branches/PR-5978442/launchd/src/liblaunch.c 2008-08-13 18:23:02 UTC (rev 23652) @@ -641,10 +641,15 @@ case LAUNCH_DATA_STRING: o_in_w->string_len = host2wire(d->string_len); total_data_len += ROUND_TO_64BIT_WORD_SIZE(strlen(d->string) + 1); + if (total_data_len > len) { return 0; } memcpy(where, d->string, strlen(d->string) + 1); + + /* Zero padded data. */ + bzero(o_in_w + (total_data_len - len)); + break; case LAUNCH_DATA_OPAQUE: o_in_w->opaque_size = host2wire(d->opaque_size); @@ -653,6 +658,10 @@ return 0; } memcpy(where, d->opaque, d->opaque_size); + + /* Zero padded data. */ + bzero(o_in_w + (total_data_len - len)); + break; case LAUNCH_DATA_DICTIONARY: case LAUNCH_DATA_ARRAY: @@ -779,7 +788,7 @@ /* hack, see the above assert to verify "correctness" */ free(lh->sendbuf); - lh->sendbuf = calloc(1, good_enough_size); + lh->sendbuf = malloc(good_enough_size); free(lh->sendfds); lh->sendfds = malloc(4 * 1024); -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080813/a369fc0a/attachment.html From source_changes at macosforge.org Wed Aug 13 16:53:14 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 13 Aug 2008 16:53:14 -0700 (PDT) Subject: [launchd-changes] [23653] branches/PR-5978442/launchd/src/liblaunch.c Message-ID: <20080813235315.1964D1E7B6D@beta.macosforge.org> Revision: 23653 http://trac.macosforge.org/projects/launchd/changeset/23653 Author: dsorresso at apple.com Date: 2008-08-13 16:53:14 -0700 (Wed, 13 Aug 2008) Log Message: ----------- One more time with proper bzero() call. Modified Paths: -------------- branches/PR-5978442/launchd/src/liblaunch.c Modified: branches/PR-5978442/launchd/src/liblaunch.c =================================================================== --- branches/PR-5978442/launchd/src/liblaunch.c 2008-08-13 18:23:02 UTC (rev 23652) +++ branches/PR-5978442/launchd/src/liblaunch.c 2008-08-13 23:53:14 UTC (rev 23653) @@ -618,6 +618,7 @@ o_in_w->type = host2wire(d->type); + size_t pad_len = 0; switch (d->type) { case LAUNCH_DATA_INTEGER: o_in_w->number = host2wire(d->number); @@ -648,7 +649,8 @@ memcpy(where, d->string, strlen(d->string) + 1); /* Zero padded data. */ - bzero(o_in_w + (total_data_len - len)); + pad_len = total_data_len - d->string_len; + bzero(o_in_w + d->string_len + 1, pad_len); break; case LAUNCH_DATA_OPAQUE: @@ -660,7 +662,8 @@ memcpy(where, d->opaque, d->opaque_size); /* Zero padded data. */ - bzero(o_in_w + (total_data_len - len)); + pad_len = total_data_len - d->opaque_size; + bzero(o_in_w + d->opaque_size, pad_len); break; case LAUNCH_DATA_DICTIONARY: -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080813/556502d6/attachment.html From source_changes at macosforge.org Wed Aug 13 18:16:16 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 13 Aug 2008 18:16:16 -0700 (PDT) Subject: [launchd-changes] [23654] branches/PR-5978442/launchd/src/liblaunch.c Message-ID: <20080814011616.72D461E814F@beta.macosforge.org> Revision: 23654 http://trac.macosforge.org/projects/launchd/changeset/23654 Author: dsorresso at apple.com Date: 2008-08-13 18:16:16 -0700 (Wed, 13 Aug 2008) Log Message: ----------- Changed total_data_len to node_data_len to make it more obvious what's going on. Fixed a potential pointer math problem. Modified Paths: -------------- branches/PR-5978442/launchd/src/liblaunch.c Modified: branches/PR-5978442/launchd/src/liblaunch.c =================================================================== --- branches/PR-5978442/launchd/src/liblaunch.c 2008-08-13 23:53:14 UTC (rev 23653) +++ branches/PR-5978442/launchd/src/liblaunch.c 2008-08-14 01:16:16 UTC (rev 23654) @@ -608,13 +608,13 @@ launch_data_pack(launch_data_t d, void *where, size_t len, int *fd_where, size_t *fd_cnt) { launch_data_t o_in_w = where; - size_t i, rsz, total_data_len = sizeof(struct _launch_data); + size_t i, rsz, node_data_len = sizeof(struct _launch_data); - if (total_data_len > len) { + if (node_data_len > len) { return 0; } - where += total_data_len; + where += node_data_len; o_in_w->type = host2wire(d->type); @@ -641,55 +641,55 @@ break; case LAUNCH_DATA_STRING: o_in_w->string_len = host2wire(d->string_len); - total_data_len += ROUND_TO_64BIT_WORD_SIZE(strlen(d->string) + 1); + node_data_len += ROUND_TO_64BIT_WORD_SIZE(d->string_len + 1); - if (total_data_len > len) { + if (node_data_len > len) { return 0; } - memcpy(where, d->string, strlen(d->string) + 1); + memcpy(where, d->string, d->string_len + 1); /* Zero padded data. */ - pad_len = total_data_len - d->string_len; - bzero(o_in_w + d->string_len + 1, pad_len); + pad_len = ROUND_TO_64BIT_WORD_SIZE(d->string_len + 1) - (d->string_len + 1); + bzero(where + d->string_len + 1, pad_len); break; case LAUNCH_DATA_OPAQUE: o_in_w->opaque_size = host2wire(d->opaque_size); - total_data_len += ROUND_TO_64BIT_WORD_SIZE(d->opaque_size); - if (total_data_len > len) { + node_data_len += ROUND_TO_64BIT_WORD_SIZE(d->opaque_size); + if (node_data_len > len) { return 0; } memcpy(where, d->opaque, d->opaque_size); /* Zero padded data. */ - pad_len = total_data_len - d->opaque_size; - bzero(o_in_w + d->opaque_size, pad_len); + pad_len = ROUND_TO_64BIT_WORD_SIZE(d->opaque_size) - d->opaque_size; + bzero(where + d->opaque_size, pad_len); break; case LAUNCH_DATA_DICTIONARY: case LAUNCH_DATA_ARRAY: o_in_w->_array_cnt = host2wire(d->_array_cnt); - total_data_len += d->_array_cnt * sizeof(uint64_t); - if (total_data_len > len) { + node_data_len += d->_array_cnt * sizeof(uint64_t); + if (node_data_len > len) { return 0; } where += d->_array_cnt * sizeof(uint64_t); for (i = 0; i < d->_array_cnt; i++) { - rsz = launch_data_pack(d->_array[i], where, len - total_data_len, fd_where, fd_cnt); + rsz = launch_data_pack(d->_array[i], where, len - node_data_len, fd_where, fd_cnt); if (rsz == 0) { return 0; } where += rsz; - total_data_len += rsz; + node_data_len += rsz; } break; default: break; } - return total_data_len; + return node_data_len; } launch_data_t -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080813/ad48d5ba/attachment-0001.html From source_changes at macosforge.org Wed Aug 13 18:21:27 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 13 Aug 2008 18:21:27 -0700 (PDT) Subject: [launchd-changes] [23655] branches/PR-5977502/ Message-ID: <20080814012127.D8B211E8196@beta.macosforge.org> Revision: 23655 http://trac.macosforge.org/projects/launchd/changeset/23655 Author: dsorresso at apple.com Date: 2008-08-13 18:21:27 -0700 (Wed, 13 Aug 2008) Log Message: ----------- "Branch for PR-5977502 from https://svn.macosforge.org/repository/launchd/trunk" Added Paths: ----------- branches/PR-5977502/ Copied: branches/PR-5977502 (from rev 23654, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080813/a0e6b7bf/attachment.html From source_changes at macosforge.org Wed Aug 13 18:25:40 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 13 Aug 2008 18:25:40 -0700 (PDT) Subject: [launchd-changes] [23656] branches/PR-5977502/launchd/src/rc.netboot Message-ID: <20080814012540.574711E8244@beta.macosforge.org> Revision: 23656 http://trac.macosforge.org/projects/launchd/changeset/23656 Author: dsorresso at apple.com Date: 2008-08-13 18:25:40 -0700 (Wed, 13 Aug 2008) Log Message: ----------- Committing Dave's patch to rc.netboot. Modified Paths: -------------- branches/PR-5977502/launchd/src/rc.netboot Modified: branches/PR-5977502/launchd/src/rc.netboot =================================================================== --- branches/PR-5977502/launchd/src/rc.netboot 2008-08-14 01:21:27 UTC (rev 23655) +++ branches/PR-5977502/launchd/src/rc.netboot 2008-08-14 01:25:40 UTC (rev 23656) @@ -1,6 +1,6 @@ #!/bin/sh ## -# Copyright 2002 Apple Computer, Inc. +# Copyright 2002-2008 Apple Inc. # # This script configures NetBoot ## @@ -105,7 +105,11 @@ return 1 fi case "${mount_from}" in - afp:*) fstype=afp;; + afp:*) + fstype=afp + kextload /System/Library/Filesystems/AppleShare/asp_tcp.kext + kextload /System/Library/Filesystems/AppleShare/afpfs.kext + ;; nfs:*) fstype=nfs;; *) echo "unknown network filesystem mount from ${mount_from}" return 1 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080813/c6d53fdc/attachment.html From source_changes at macosforge.org Thu Aug 14 10:21:01 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Thu, 14 Aug 2008 10:21:01 -0700 (PDT) Subject: [launchd-changes] [23657] branches/PR-5986602/ Message-ID: <20080814172101.790A31EA899@beta.macosforge.org> Revision: 23657 http://trac.macosforge.org/projects/launchd/changeset/23657 Author: dsorresso at apple.com Date: 2008-08-14 10:21:01 -0700 (Thu, 14 Aug 2008) Log Message: ----------- "Branch for PR-5986602 from https://svn.macosforge.org/repository/launchd/branches/PR-5977502" Added Paths: ----------- branches/PR-5986602/ Copied: branches/PR-5986602 (from rev 23656, branches/PR-5977502) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080814/4d2db95d/attachment.html From source_changes at macosforge.org Thu Aug 14 12:17:25 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Thu, 14 Aug 2008 12:17:25 -0700 (PDT) Subject: [launchd-changes] [23658] branches/PR-5923864/ Message-ID: <20080814191725.A2BBE1EB233@beta.macosforge.org> Revision: 23658 http://trac.macosforge.org/projects/launchd/changeset/23658 Author: dsorresso at apple.com Date: 2008-08-14 12:17:25 -0700 (Thu, 14 Aug 2008) Log Message: ----------- "Branch for PR-5923864 from https://svn.macosforge.org/repository/launchd/branches/PR-5986602" Added Paths: ----------- branches/PR-5923864/ Copied: branches/PR-5923864 (from rev 23657, branches/PR-5986602) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080814/d2100bbc/attachment.html From source_changes at macosforge.org Thu Aug 14 14:03:13 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Thu, 14 Aug 2008 14:03:13 -0700 (PDT) Subject: [launchd-changes] [23659] branches/PR-5923864/launchd/src/launchd_core_logic.c Message-ID: <20080814210313.E50841EB72F@beta.macosforge.org> Revision: 23659 http://trac.macosforge.org/projects/launchd/changeset/23659 Author: dsorresso at apple.com Date: 2008-08-14 14:03:13 -0700 (Thu, 14 Aug 2008) Log Message: ----------- Enabling auditing on all jobs. Modified Paths: -------------- branches/PR-5923864/launchd/src/launchd_core_logic.c Modified: branches/PR-5923864/launchd/src/launchd_core_logic.c =================================================================== --- branches/PR-5923864/launchd/src/launchd_core_logic.c 2008-08-14 19:17:25 UTC (rev 23658) +++ branches/PR-5923864/launchd/src/launchd_core_logic.c 2008-08-14 21:03:13 UTC (rev 23659) @@ -475,6 +475,7 @@ static bool job_setup_machport(job_t j); static void job_setup_fd(job_t j, int target_fd, const char *path, int flags); static void job_postfork_become_user(job_t j); +static void job_enable_audit_for_user(job_t j, uid_t u, char *name); static void job_postfork_test_user(job_t j); static void job_log_pids_with_weird_uids(job_t j); static void job_force_sampletool(job_t j); @@ -3355,6 +3356,8 @@ desired_gid = gre->gr_gid; } + job_enable_audit_for_user(j, desired_uid, loginname); + if (!job_assumes(j, setlogin(loginname) != -1)) { _exit(EXIT_FAILURE); } @@ -3391,6 +3394,28 @@ } void +job_enable_audit_for_user(job_t j, uid_t u, char *name) +{ + auditinfo_t auinfo = { + .ai_auid = u, + .ai_asid = j->p, + }; + long au_cond; + + if (!job_assumes(j, auditon(A_GETCOND, &au_cond, sizeof(long)) == 0)) { + _exit(EXIT_FAILURE); + } + + if (au_cond != AUC_NOAUDIT) { + if (!job_assumes(j, au_user_mask(name, &auinfo.ai_mask) == 0)) { + _exit(EXIT_FAILURE); + } else if (!job_assumes(j, setaudit(&auinfo) == 0)) { + _exit(EXIT_FAILURE); + } + } +} + +void job_setup_attributes(job_t j) { struct limititem *li; -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080814/e8769e10/attachment.html From source_changes at macosforge.org Thu Aug 14 14:08:58 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Thu, 14 Aug 2008 14:08:58 -0700 (PDT) Subject: [launchd-changes] [23660] branches/PR-5039559/ Message-ID: <20080814210858.E998E1EB7D2@beta.macosforge.org> Revision: 23660 http://trac.macosforge.org/projects/launchd/changeset/23660 Author: dsorresso at apple.com Date: 2008-08-14 14:08:58 -0700 (Thu, 14 Aug 2008) Log Message: ----------- "Branch for PR-5039559 from https://svn.macosforge.org/repository/launchd/branches/PR-5923864" Added Paths: ----------- branches/PR-5039559/ Copied: branches/PR-5039559 (from rev 23659, branches/PR-5923864) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080814/a447c137/attachment-0001.html From source_changes at macosforge.org Thu Aug 14 14:15:30 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Thu, 14 Aug 2008 14:15:30 -0700 (PDT) Subject: [launchd-changes] [23661] branches/PR-5039559/ Message-ID: <20080814211530.5E2441EB8AB@beta.macosforge.org> Revision: 23661 http://trac.macosforge.org/projects/launchd/changeset/23661 Author: dsorresso at apple.com Date: 2008-08-14 14:15:30 -0700 (Thu, 14 Aug 2008) Log Message: ----------- Removing bad branch. Removed Paths: ------------- branches/PR-5039559/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080814/38aecf1f/attachment.html From source_changes at macosforge.org Thu Aug 14 14:16:50 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Thu, 14 Aug 2008 14:16:50 -0700 (PDT) Subject: [launchd-changes] [23662] branches/PR-5039559/ Message-ID: <20080814211650.21F861EB905@beta.macosforge.org> Revision: 23662 http://trac.macosforge.org/projects/launchd/changeset/23662 Author: dsorresso at apple.com Date: 2008-08-14 14:16:49 -0700 (Thu, 14 Aug 2008) Log Message: ----------- "Branch for PR-5039559 from https://svn.macosforge.org/repository/launchd/trunk" Added Paths: ----------- branches/PR-5039559/ Copied: branches/PR-5039559 (from rev 23661, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080814/cd6a5d9f/attachment.html From source_changes at macosforge.org Thu Aug 14 19:20:46 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Thu, 14 Aug 2008 19:20:46 -0700 (PDT) Subject: [launchd-changes] [23663] branches/PR-5039559/launchd/src/launchd.c Message-ID: <20080815022046.32DF21ECFFD@beta.macosforge.org> Revision: 23663 http://trac.macosforge.org/projects/launchd/changeset/23663 Author: dsorresso at apple.com Date: 2008-08-14 19:20:45 -0700 (Thu, 14 Aug 2008) Log Message: ----------- Added update thread. No parameter grabbing yet though. Modified Paths: -------------- branches/PR-5039559/launchd/src/launchd.c Modified: branches/PR-5039559/launchd/src/launchd.c =================================================================== --- branches/PR-5039559/launchd/src/launchd.c 2008-08-14 21:16:49 UTC (rev 23662) +++ branches/PR-5039559/launchd/src/launchd.c 2008-08-15 02:20:45 UTC (rev 23663) @@ -96,6 +96,8 @@ static void fatal_signal_handler(int sig, siginfo_t *si, void *uap); static void handle_pid1_crashes_separately(void); +static void update_thread(unsigned int freq); + static bool re_exec_in_single_user_mode; static void *crash_addr; static pid_t crash_pid; @@ -165,6 +167,22 @@ _vproc_transaction_end(); } +//#if TARGET_OS_EMBEDDED + if( getpid() == 1 ) { + /* Start the update thread -- rdar://problem/5039559 */ + pthread_t t = NULL; + int freq = 30; + int err = pthread_create(&t, NULL, (void (*)(void *))update_thread, (void *)freq); + if( err != 0 ) { + /* If we hit this condition, there's something horribly wrong. + * We're the first process; we shouldn't be running out of threads or anything + * whacky like that. + */ + fprintf(stderr, "%s: Dude, your system is seriously messed up (%d - %s). I'm guessing you'll crash very soon.\n", getprogname(), err, strerror(err)); + } + } +//#endif + jobmgr_init(sflag); launchd_runtime_init2(); @@ -187,6 +205,14 @@ launchd_assumes(sigaction(SIGSEGV, &fsa, NULL) != -1); } +static void update_thread(unsigned int freq) +{ + while( true ) { + sync(); + sleep(freq); + } +} + #define PID1_CRASH_LOGFILE "/var/log/launchd-pid1.crash" /* This hack forces the dynamic linker to resolve these symbols ASAP */ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080814/13c1c345/attachment.html From source_changes at macosforge.org Thu Aug 14 20:51:48 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Thu, 14 Aug 2008 20:51:48 -0700 (PDT) Subject: [launchd-changes] [23664] branches/PR-5039559/launchd/src/launchd.c Message-ID: <20080815035148.608AC1ED300@beta.macosforge.org> Revision: 23664 http://trac.macosforge.org/projects/launchd/changeset/23664 Author: dsorresso at apple.com Date: 2008-08-14 20:51:47 -0700 (Thu, 14 Aug 2008) Log Message: ----------- Changed error checking to use launchd_assumes() and therefore a less snarky error message. Still need to figure out what to do in the case of failure. Probably just exit. Modified Paths: -------------- branches/PR-5039559/launchd/src/launchd.c Modified: branches/PR-5039559/launchd/src/launchd.c =================================================================== --- branches/PR-5039559/launchd/src/launchd.c 2008-08-15 02:20:45 UTC (rev 23663) +++ branches/PR-5039559/launchd/src/launchd.c 2008-08-15 03:51:47 UTC (rev 23664) @@ -168,18 +168,13 @@ } //#if TARGET_OS_EMBEDDED - if( getpid() == 1 ) { + if( pid1_magic ) { /* Start the update thread -- rdar://problem/5039559 */ pthread_t t = NULL; int freq = 30; int err = pthread_create(&t, NULL, (void (*)(void *))update_thread, (void *)freq); - if( err != 0 ) { - /* If we hit this condition, there's something horribly wrong. - * We're the first process; we shouldn't be running out of threads or anything - * whacky like that. - */ - fprintf(stderr, "%s: Dude, your system is seriously messed up (%d - %s). I'm guessing you'll crash very soon.\n", getprogname(), err, strerror(err)); - } + launchd_assumes(err == 0); + /* FIXME: Figure out what to do if we fail ... */ } //#endif -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080814/a77c52dc/attachment-0001.html From source_changes at macosforge.org Fri Aug 15 01:04:46 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Fri, 15 Aug 2008 01:04:46 -0700 (PDT) Subject: [launchd-changes] [23665] branches/PR-5039559/launchd/src/launchd.c Message-ID: <20080815080446.602831EDE85@beta.macosforge.org> Revision: 23665 http://trac.macosforge.org/projects/launchd/changeset/23665 Author: dsorresso at apple.com Date: 2008-08-15 01:04:45 -0700 (Fri, 15 Aug 2008) Log Message: ----------- Frequency parameter is now a global, eschewing potential complications in passing an unsigned int as a void *. Also makes logic in the new thread loop more concise. Update thread function is now properly typed and returns NULL. Modified Paths: -------------- branches/PR-5039559/launchd/src/launchd.c Modified: branches/PR-5039559/launchd/src/launchd.c =================================================================== --- branches/PR-5039559/launchd/src/launchd.c 2008-08-15 03:51:47 UTC (rev 23664) +++ branches/PR-5039559/launchd/src/launchd.c 2008-08-15 08:04:45 UTC (rev 23665) @@ -67,6 +67,7 @@ #include #include #include +#include #include "libbootstrap_public.h" #include "libvproc_public.h" @@ -96,7 +97,7 @@ static void fatal_signal_handler(int sig, siginfo_t *si, void *uap); static void handle_pid1_crashes_separately(void); -static void update_thread(unsigned int freq); +static void *update_thread(void *nothing); static bool re_exec_in_single_user_mode; static void *crash_addr; @@ -105,6 +106,7 @@ bool shutdown_in_progress; bool fake_shutdown_in_progress; bool network_up; +unsigned int g_sync_frequency = 0; int main(int argc, char *const *argv) @@ -171,10 +173,9 @@ if( pid1_magic ) { /* Start the update thread -- rdar://problem/5039559 */ pthread_t t = NULL; - int freq = 30; - int err = pthread_create(&t, NULL, (void (*)(void *))update_thread, (void *)freq); + g_sync_frequency = 30; + int err = pthread_create(&t, NULL, update_thread, NULL); launchd_assumes(err == 0); - /* FIXME: Figure out what to do if we fail ... */ } //#endif @@ -200,12 +201,14 @@ launchd_assumes(sigaction(SIGSEGV, &fsa, NULL) != -1); } -static void update_thread(unsigned int freq) +void *update_thread(void *nothing __attribute__((unused))) { - while( true ) { + while( g_sync_frequency ) { sync(); - sleep(freq); + sleep(g_sync_frequency); } + + return NULL; } #define PID1_CRASH_LOGFILE "/var/log/launchd-pid1.crash" -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080815/3ffd14a6/attachment.html From source_changes at macosforge.org Mon Aug 18 13:34:34 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Mon, 18 Aug 2008 13:34:34 -0700 (PDT) Subject: [launchd-changes] [23666] branches/PR-5039559/launchd/src/launchd.c Message-ID: <20080818203434.95C971F96EE@beta.macosforge.org> Revision: 23666 http://trac.macosforge.org/projects/launchd/changeset/23666 Author: dsorresso at apple.com Date: 2008-08-18 13:34:34 -0700 (Mon, 18 Aug 2008) Log Message: ----------- Tweaked comment. Got rid of unneeded, commented-out #ifdef. Modified Paths: -------------- branches/PR-5039559/launchd/src/launchd.c Modified: branches/PR-5039559/launchd/src/launchd.c =================================================================== --- branches/PR-5039559/launchd/src/launchd.c 2008-08-15 08:04:45 UTC (rev 23665) +++ branches/PR-5039559/launchd/src/launchd.c 2008-08-18 20:34:34 UTC (rev 23666) @@ -169,15 +169,13 @@ _vproc_transaction_end(); } -//#if TARGET_OS_EMBEDDED if( pid1_magic ) { - /* Start the update thread -- rdar://problem/5039559 */ + /* Start the update thread -- rdar://problem/5039559&6153301 */ pthread_t t = NULL; g_sync_frequency = 30; int err = pthread_create(&t, NULL, update_thread, NULL); launchd_assumes(err == 0); } -//#endif jobmgr_init(sflag); -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080818/b202b175/attachment.html From source_changes at macosforge.org Mon Aug 18 15:17:12 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Mon, 18 Aug 2008 15:17:12 -0700 (PDT) Subject: [launchd-changes] [23667] branches/PR-5874233/launchd/src/launchd_core_logic.c Message-ID: <20080818221712.8F5D01FA975@beta.macosforge.org> Revision: 23667 http://trac.macosforge.org/projects/launchd/changeset/23667 Author: dsorresso at apple.com Date: 2008-08-18 15:17:12 -0700 (Mon, 18 Aug 2008) Log Message: ----------- Now sanitizing LAUNCHD_TRUSTED_FD_ENV before passing it along. Modified Paths: -------------- branches/PR-5874233/launchd/src/launchd_core_logic.c Modified: branches/PR-5874233/launchd/src/launchd_core_logic.c =================================================================== --- branches/PR-5874233/launchd/src/launchd_core_logic.c 2008-08-18 20:34:34 UTC (rev 23666) +++ branches/PR-5874233/launchd/src/launchd_core_logic.c 2008-08-18 22:17:12 UTC (rev 23667) @@ -4176,7 +4176,11 @@ return; } - envitem_new(j, key, launch_data_get_string(obj), j->importing_global_env); + if( strncmp(LAUNCHD_TRUSTED_FD_ENV, key, sizeof(LAUNCHD_TRUSTED_FD_ENV) - 1) ) { + envitem_new(j, key, launch_data_get_string(obj), j->importing_global_env); + } else { + job_log(j, LOG_WARNING, "Not setting %s for job %s.", key, j->label); + } } bool -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080818/5101c30c/attachment.html From source_changes at macosforge.org Mon Aug 18 15:47:12 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Mon, 18 Aug 2008 15:47:12 -0700 (PDT) Subject: [launchd-changes] [23668] branches/PR-6045086/ Message-ID: <20080818224712.939501FAAED@beta.macosforge.org> Revision: 23668 http://trac.macosforge.org/projects/launchd/changeset/23668 Author: dsorresso at apple.com Date: 2008-08-18 15:47:12 -0700 (Mon, 18 Aug 2008) Log Message: ----------- "Branch for PR-6045086 from https://svn.macosforge.org/repository/launchd/branches/PR-5039559" Added Paths: ----------- branches/PR-6045086/ Copied: branches/PR-6045086 (from rev 23667, branches/PR-5039559) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080818/b3d7ae0d/attachment.html From source_changes at macosforge.org Mon Aug 18 16:03:07 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Mon, 18 Aug 2008 16:03:07 -0700 (PDT) Subject: [launchd-changes] [23669] branches/PR-6045086/ Message-ID: <20080818230307.9BDFC1FAC72@beta.macosforge.org> Revision: 23669 http://trac.macosforge.org/projects/launchd/changeset/23669 Author: dsorresso at apple.com Date: 2008-08-18 16:03:07 -0700 (Mon, 18 Aug 2008) Log Message: ----------- Removing bad branch. Removed Paths: ------------- branches/PR-6045086/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080818/9bddc7a3/attachment-0001.html From source_changes at macosforge.org Mon Aug 18 16:13:28 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Mon, 18 Aug 2008 16:13:28 -0700 (PDT) Subject: [launchd-changes] [23670] branches/PR-6045086/ Message-ID: <20080818231328.645B71FAD16@beta.macosforge.org> Revision: 23670 http://trac.macosforge.org/projects/launchd/changeset/23670 Author: dsorresso at apple.com Date: 2008-08-18 16:13:27 -0700 (Mon, 18 Aug 2008) Log Message: ----------- "Branch for PR-6045086 from https://svn.macosforge.org/repository/launchd/trunk" Added Paths: ----------- branches/PR-6045086/ Copied: branches/PR-6045086 (from rev 23669, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080818/3a9905bb/attachment.html From source_changes at macosforge.org Mon Aug 18 18:41:36 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Mon, 18 Aug 2008 18:41:36 -0700 (PDT) Subject: [launchd-changes] [23671] branches/PR-6045086/launchd/src/launchd_runtime.c Message-ID: <20080819014136.7A7881FB3B0@beta.macosforge.org> Revision: 23671 http://trac.macosforge.org/projects/launchd/changeset/23671 Author: dsorresso at apple.com Date: 2008-08-18 18:41:36 -0700 (Mon, 18 Aug 2008) Log Message: ----------- Made some logging changes for tracking down the bug. Modified Paths: -------------- branches/PR-6045086/launchd/src/launchd_runtime.c Modified: branches/PR-6045086/launchd/src/launchd_runtime.c =================================================================== --- branches/PR-6045086/launchd/src/launchd_runtime.c 2008-08-18 23:13:27 UTC (rev 23670) +++ branches/PR-6045086/launchd/src/launchd_runtime.c 2008-08-19 01:41:36 UTC (rev 23671) @@ -1173,7 +1173,7 @@ INTERNAL_ABI int runtime_fsync(int fd) { -#if 0 +#if 1 if (do_apple_internal_logging) { return fcntl(fd, F_FULLFSYNC, NULL); } else { -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080818/6c1856e0/attachment.html From source_changes at macosforge.org Mon Aug 18 21:58:06 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Mon, 18 Aug 2008 21:58:06 -0700 (PDT) Subject: [launchd-changes] [23672] branches/PR-5039559/launchd/src/launchd.c Message-ID: <20080819045807.05E121FBB05@beta.macosforge.org> Revision: 23672 http://trac.macosforge.org/projects/launchd/changeset/23672 Author: dsorresso at apple.com Date: 2008-08-18 21:58:06 -0700 (Mon, 18 Aug 2008) Log Message: ----------- Minor adjustments. Modified Paths: -------------- branches/PR-5039559/launchd/src/launchd.c Modified: branches/PR-5039559/launchd/src/launchd.c =================================================================== --- branches/PR-5039559/launchd/src/launchd.c 2008-08-19 01:41:36 UTC (rev 23671) +++ branches/PR-5039559/launchd/src/launchd.c 2008-08-19 04:58:06 UTC (rev 23672) @@ -102,11 +102,11 @@ static bool re_exec_in_single_user_mode; static void *crash_addr; static pid_t crash_pid; +static unsigned int g_sync_frequency = 30; bool shutdown_in_progress; bool fake_shutdown_in_progress; bool network_up; -unsigned int g_sync_frequency = 0; int main(int argc, char *const *argv) @@ -172,7 +172,6 @@ if( pid1_magic ) { /* Start the update thread -- rdar://problem/5039559&6153301 */ pthread_t t = NULL; - g_sync_frequency = 30; int err = pthread_create(&t, NULL, update_thread, NULL); launchd_assumes(err == 0); } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080818/7b8c31bd/attachment.html From source_changes at macosforge.org Mon Aug 18 22:05:17 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Mon, 18 Aug 2008 22:05:17 -0700 (PDT) Subject: [launchd-changes] [23673] branches/PR-5874233/launchd/src/launchd_core_logic.c Message-ID: <20080819050518.0435F1FBB57@beta.macosforge.org> Revision: 23673 http://trac.macosforge.org/projects/launchd/changeset/23673 Author: dsorresso at apple.com Date: 2008-08-18 22:05:17 -0700 (Mon, 18 Aug 2008) Log Message: ----------- Minor tweaks. Modified Paths: -------------- branches/PR-5874233/launchd/src/launchd_core_logic.c Modified: branches/PR-5874233/launchd/src/launchd_core_logic.c =================================================================== --- branches/PR-5874233/launchd/src/launchd_core_logic.c 2008-08-19 04:58:06 UTC (rev 23672) +++ branches/PR-5874233/launchd/src/launchd_core_logic.c 2008-08-19 05:05:17 UTC (rev 23673) @@ -4179,7 +4179,7 @@ if( strncmp(LAUNCHD_TRUSTED_FD_ENV, key, sizeof(LAUNCHD_TRUSTED_FD_ENV) - 1) ) { envitem_new(j, key, launch_data_get_string(obj), j->importing_global_env); } else { - job_log(j, LOG_WARNING, "Not setting %s for job %s.", key, j->label); + job_log(j, LOG_WARNING, "Ignoring reserved environmental variable: %s", key); } } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080818/04a29c46/attachment-0001.html From source_changes at macosforge.org Mon Aug 18 23:39:44 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Mon, 18 Aug 2008 23:39:44 -0700 (PDT) Subject: [launchd-changes] [23674] trunk/launchd/src/launchd_core_logic.c Message-ID: <20080819063944.CC1C51FBD5E@beta.macosforge.org> Revision: 23674 http://trac.macosforge.org/projects/launchd/changeset/23674 Author: zarzycki at apple.com Date: 2008-08-18 23:39:43 -0700 (Mon, 18 Aug 2008) Log Message: ----------- Bug from eons ago... Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2008-08-19 05:05:17 UTC (rev 23673) +++ trunk/launchd/src/launchd_core_logic.c 2008-08-19 06:39:43 UTC (rev 23674) @@ -3662,13 +3662,13 @@ } if (unlikely(j->debug)) { - oldmask = setlogmask(LOG_UPTO(LOG_DEBUG)); + oldmask = runtime_setlogmask(LOG_UPTO(LOG_DEBUG)); } runtime_vsyslog(&attr, newmsg, ap); if (unlikely(j->debug)) { - setlogmask(oldmask); + runtime_setlogmask(oldmask); } } @@ -4176,7 +4176,9 @@ return; } - envitem_new(j, key, launch_data_get_string(obj), j->importing_global_env); + if (fastpath(strcasecmp(key, LAUNCHD_TRUSTED_FD_ENV) == 0)) { + envitem_new(j, key, launch_data_get_string(obj), j->importing_global_env); + } } bool -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080818/9cb36624/attachment.html From source_changes at macosforge.org Mon Aug 18 23:41:24 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Mon, 18 Aug 2008 23:41:24 -0700 (PDT) Subject: [launchd-changes] [23675] trunk/launchd/src/launchd_core_logic.c Message-ID: <20080819064125.090821FBD89@beta.macosforge.org> Revision: 23675 http://trac.macosforge.org/projects/launchd/changeset/23675 Author: zarzycki at apple.com Date: 2008-08-18 23:41:24 -0700 (Mon, 18 Aug 2008) Log Message: ----------- Undo part of the last change before Damien commits in the same region. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2008-08-19 06:39:43 UTC (rev 23674) +++ trunk/launchd/src/launchd_core_logic.c 2008-08-19 06:41:24 UTC (rev 23675) @@ -4176,9 +4176,7 @@ return; } - if (fastpath(strcasecmp(key, LAUNCHD_TRUSTED_FD_ENV) == 0)) { - envitem_new(j, key, launch_data_get_string(obj), j->importing_global_env); - } + envitem_new(j, key, launch_data_get_string(obj), j->importing_global_env); } bool -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080818/25b786c9/attachment.html From source_changes at macosforge.org Tue Aug 19 17:58:29 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Tue, 19 Aug 2008 17:58:29 -0700 (PDT) Subject: [launchd-changes] [23676] branches/PR-5898404/ Message-ID: <20080820005829.621DC1FFF85@beta.macosforge.org> Revision: 23676 http://trac.macosforge.org/projects/launchd/changeset/23676 Author: dsorresso at apple.com Date: 2008-08-19 17:58:29 -0700 (Tue, 19 Aug 2008) Log Message: ----------- "Branch for PR-5898404 from https://svn.macosforge.org/repository/launchd/branches/PR-6045086" Added Paths: ----------- branches/PR-5898404/ Copied: branches/PR-5898404 (from rev 23675, branches/PR-6045086) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080819/41ce4b45/attachment.html From source_changes at macosforge.org Tue Aug 19 17:59:16 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Tue, 19 Aug 2008 17:59:16 -0700 (PDT) Subject: [launchd-changes] [23677] branches/PR-5898404/ Message-ID: <20080820005916.A03CA1FFFAD@beta.macosforge.org> Revision: 23677 http://trac.macosforge.org/projects/launchd/changeset/23677 Author: dsorresso at apple.com Date: 2008-08-19 17:59:16 -0700 (Tue, 19 Aug 2008) Log Message: ----------- Removing bad branch. I really need to figure out what's wrong with this script. Removed Paths: ------------- branches/PR-5898404/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080819/a2800d2a/attachment.html From source_changes at macosforge.org Tue Aug 19 18:18:02 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Tue, 19 Aug 2008 18:18:02 -0700 (PDT) Subject: [launchd-changes] [23678] branches/PR-5898404/ Message-ID: <20080820011802.298AC200015@beta.macosforge.org> Revision: 23678 http://trac.macosforge.org/projects/launchd/changeset/23678 Author: dsorresso at apple.com Date: 2008-08-19 18:18:01 -0700 (Tue, 19 Aug 2008) Log Message: ----------- Creating branch PR-5898404 for rdar://problem/5898404. Added Paths: ----------- branches/PR-5898404/ Copied: branches/PR-5898404 (from rev 23677, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080819/21b2f3a8/attachment.html From source_changes at macosforge.org Tue Aug 19 18:18:57 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Tue, 19 Aug 2008 18:18:57 -0700 (PDT) Subject: [launchd-changes] [23679] branches/PR-5898404/ Message-ID: <20080820011857.AA4FA200039@beta.macosforge.org> Revision: 23679 http://trac.macosforge.org/projects/launchd/changeset/23679 Author: dsorresso at apple.com Date: 2008-08-19 18:18:57 -0700 (Tue, 19 Aug 2008) Log Message: ----------- Removing branch for test. Removed Paths: ------------- branches/PR-5898404/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080819/309e2b71/attachment.html From source_changes at macosforge.org Tue Aug 19 18:19:04 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Tue, 19 Aug 2008 18:19:04 -0700 (PDT) Subject: [launchd-changes] [23680] branches/PR-5898404/ Message-ID: <20080820011904.24B38200058@beta.macosforge.org> Revision: 23680 http://trac.macosforge.org/projects/launchd/changeset/23680 Author: dsorresso at apple.com Date: 2008-08-19 18:19:03 -0700 (Tue, 19 Aug 2008) Log Message: ----------- Creating branch PR-5898404 for rdar://problem/5898404. Added Paths: ----------- branches/PR-5898404/ Copied: branches/PR-5898404 (from rev 23679, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080819/adfc4749/attachment-0001.html From source_changes at macosforge.org Tue Aug 19 19:19:07 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Tue, 19 Aug 2008 19:19:07 -0700 (PDT) Subject: [launchd-changes] [23681] branches/PR-5898404/launchd/src Message-ID: <20080820021907.BA98420020A@beta.macosforge.org> Revision: 23681 http://trac.macosforge.org/projects/launchd/changeset/23681 Author: dsorresso at apple.com Date: 2008-08-19 19:19:07 -0700 (Tue, 19 Aug 2008) Log Message: ----------- Added placeholder code. Nothing's been defined yet. Modified Paths: -------------- branches/PR-5898404/launchd/src/libvproc.c branches/PR-5898404/launchd/src/libvproc_private.h Modified: branches/PR-5898404/launchd/src/libvproc.c =================================================================== --- branches/PR-5898404/launchd/src/libvproc.c 2008-08-20 01:19:03 UTC (rev 23680) +++ branches/PR-5898404/launchd/src/libvproc.c 2008-08-20 02:19:07 UTC (rev 23681) @@ -181,6 +181,11 @@ } } +void _vproc_transaction_optin(void) +{ + +} + vproc_standby_t vproc_standby_begin(vproc_t vp __attribute__((unused))) { Modified: branches/PR-5898404/launchd/src/libvproc_private.h =================================================================== --- branches/PR-5898404/launchd/src/libvproc_private.h 2008-08-20 01:19:03 UTC (rev 23680) +++ branches/PR-5898404/launchd/src/libvproc_private.h 2008-08-20 02:19:07 UTC (rev 23681) @@ -87,6 +87,7 @@ void _vproc_transaction_try_exit(int status); void _vproc_transaction_begin(void); void _vproc_transaction_end(void); +void _vproc_transaction_optin(void); size_t _vproc_transaction_count(void); -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080819/2118b2d7/attachment.html From source_changes at macosforge.org Wed Aug 20 01:31:45 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 20 Aug 2008 01:31:45 -0700 (PDT) Subject: [launchd-changes] [23682] branches/PR-5898404/launchd/src Message-ID: <20080820083145.A5C39200E4E@beta.macosforge.org> Revision: 23682 http://trac.macosforge.org/projects/launchd/changeset/23682 Author: dsorresso at apple.com Date: 2008-08-20 01:31:44 -0700 (Wed, 20 Aug 2008) Log Message: ----------- Added vproc_transaction_optin() SPI. buildit isn't working from home, so I don't know if these changes compile/work yet. Modified Paths: -------------- branches/PR-5898404/launchd/src/launchd_core_logic.c branches/PR-5898404/launchd/src/libvproc.c branches/PR-5898404/launchd/src/libvproc_private.h branches/PR-5898404/launchd/src/protocol_job.defs branches/PR-5898404/launchd/src/protocol_job_reply.defs Modified: branches/PR-5898404/launchd/src/launchd_core_logic.c =================================================================== --- branches/PR-5898404/launchd/src/launchd_core_logic.c 2008-08-20 02:19:07 UTC (rev 23681) +++ branches/PR-5898404/launchd/src/launchd_core_logic.c 2008-08-20 08:31:44 UTC (rev 23682) @@ -6424,6 +6424,20 @@ } kern_return_t +job_mig_transaction_register(job_t job, uint64_t flags __attribute__((unused))) +{ + job_log(job, LOG_DEBUG, "Request to be opted into transaction model."); + + if( !job->kill_via_shmem ) { + job->kill_via_shmem = 1; + } else { + job_log(job, LOG_NOTICE, "Attempt to re-register for transaction model."); + } + + return KERN_SUCCESS; +} + +kern_return_t job_mig_look_up2(job_t j, mach_port_t srp, name_t servicename, mach_port_t *serviceportp, pid_t target_pid, uint64_t flags) { struct machservice *ms; Modified: branches/PR-5898404/launchd/src/libvproc.c =================================================================== --- branches/PR-5898404/launchd/src/libvproc.c 2008-08-20 02:19:07 UTC (rev 23681) +++ branches/PR-5898404/launchd/src/libvproc.c 2008-08-20 08:31:44 UTC (rev 23682) @@ -181,9 +181,16 @@ } } -void _vproc_transaction_optin(void) +vproc_err_t _vproc_transaction_optin(void) { + if (unlikely(vproc_shmem == NULL)) { + int po_r = pthread_once(&shmem_inited, vproc_shmem_init); + if (po_r != 0 || vproc_shmem == NULL) { + return; + } + } + return vproc_mig_transaction_register(bootstrap_port, 0)); } vproc_standby_t Modified: branches/PR-5898404/launchd/src/libvproc_private.h =================================================================== --- branches/PR-5898404/launchd/src/libvproc_private.h 2008-08-20 02:19:07 UTC (rev 23681) +++ branches/PR-5898404/launchd/src/libvproc_private.h 2008-08-20 08:31:44 UTC (rev 23682) @@ -87,7 +87,7 @@ void _vproc_transaction_try_exit(int status); void _vproc_transaction_begin(void); void _vproc_transaction_end(void); -void _vproc_transaction_optin(void); +vproc_err_t _vproc_transaction_optin(void); size_t _vproc_transaction_count(void); Modified: branches/PR-5898404/launchd/src/protocol_job.defs =================================================================== --- branches/PR-5898404/launchd/src/protocol_job.defs 2008-08-20 02:19:07 UTC (rev 23681) +++ branches/PR-5898404/launchd/src/protocol_job.defs 2008-08-20 08:31:44 UTC (rev 23682) @@ -62,6 +62,10 @@ __service_port : mach_port_t; __flags : uint64_t); +routine transaction_optin( + __bs_port : job_t; + __flags : uint64_t); + routine look_up2( __bs_port : job_t; sreplyport __rport : mach_port_make_send_once_t; Modified: branches/PR-5898404/launchd/src/protocol_job_reply.defs =================================================================== --- branches/PR-5898404/launchd/src/protocol_job_reply.defs 2008-08-20 02:19:07 UTC (rev 23681) +++ branches/PR-5898404/launchd/src/protocol_job_reply.defs 2008-08-20 08:31:44 UTC (rev 23682) @@ -35,6 +35,8 @@ skip; /* register */ +skip; /* transaction_optin */ + skip; /* look_up */ simpleroutine job_mig_send_signal_reply( -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080820/9dedc770/attachment.html From source_changes at macosforge.org Wed Aug 20 18:06:15 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 20 Aug 2008 18:06:15 -0700 (PDT) Subject: [launchd-changes] [23683] branches/PR-5898404/launchd/src Message-ID: <20080821010615.5B803203522@beta.macosforge.org> Revision: 23683 http://trac.macosforge.org/projects/launchd/changeset/23683 Author: dsorresso at apple.com Date: 2008-08-20 18:06:14 -0700 (Wed, 20 Aug 2008) Log Message: ----------- Rolled transaction SPI into vproc_swap_integer(). Modified Paths: -------------- branches/PR-5898404/launchd/src/launchd_core_logic.c branches/PR-5898404/launchd/src/libvproc.c branches/PR-5898404/launchd/src/libvproc_private.h branches/PR-5898404/launchd/src/protocol_job.defs Modified: branches/PR-5898404/launchd/src/launchd_core_logic.c =================================================================== --- branches/PR-5898404/launchd/src/launchd_core_logic.c 2008-08-20 08:31:44 UTC (rev 23682) +++ branches/PR-5898404/launchd/src/launchd_core_logic.c 2008-08-21 01:06:14 UTC (rev 23683) @@ -6017,6 +6017,10 @@ *outval = oldmask; umask(oldmask); break; + case VPROC_GSK_TRANSACTIONS_ENABLED: + job_log(j, LOG_DEBUG, "Reading transaction model status."); + *outval = j->kill_via_shmem; + break; case 0: *outval = 0; break; @@ -6081,6 +6085,15 @@ umask((mode_t) inval); } break; + case VPROC_GSK_TRANSACTIONS_ENABLED: + if( !job_assumes(j, inval != 0) ) { + job_log(j, LOG_WARNING, "Attempt to unregister from transaction model. This is not supported."); + kr = 1; + } else { + job_log(j, LOG_DEBUG, "Now participating in transaction model."); + j->kill_via_shmem = (bool)inval; + job_log(j, LOG_DEBUG, "j->kill_via_shmem = %s", j->kill_via_shmem ? "YES" : "NO"); + } case 0: break; default: @@ -6424,20 +6437,6 @@ } kern_return_t -job_mig_transaction_register(job_t job, uint64_t flags __attribute__((unused))) -{ - job_log(job, LOG_DEBUG, "Request to be opted into transaction model."); - - if( !job->kill_via_shmem ) { - job->kill_via_shmem = 1; - } else { - job_log(job, LOG_NOTICE, "Attempt to re-register for transaction model."); - } - - return KERN_SUCCESS; -} - -kern_return_t job_mig_look_up2(job_t j, mach_port_t srp, name_t servicename, mach_port_t *serviceportp, pid_t target_pid, uint64_t flags) { struct machservice *ms; Modified: branches/PR-5898404/launchd/src/libvproc.c =================================================================== --- branches/PR-5898404/launchd/src/libvproc.c 2008-08-20 08:31:44 UTC (rev 23682) +++ branches/PR-5898404/launchd/src/libvproc.c 2008-08-21 01:06:14 UTC (rev 23683) @@ -56,6 +56,7 @@ static int64_t cached_pid = -1; static struct vproc_shmem_s *vproc_shmem; static pthread_once_t shmem_inited = PTHREAD_ONCE_INIT; +static uint64_t s_cached_transactions_enabled = 0; static void vproc_shmem_init(void) @@ -181,18 +182,6 @@ } } -vproc_err_t _vproc_transaction_optin(void) -{ - if (unlikely(vproc_shmem == NULL)) { - int po_r = pthread_once(&shmem_inited, vproc_shmem_init); - if (po_r != 0 || vproc_shmem == NULL) { - return; - } - } - - return vproc_mig_transaction_register(bootstrap_port, 0)); -} - vproc_standby_t vproc_standby_begin(vproc_t vp __attribute__((unused))) { @@ -655,6 +644,21 @@ return NULL; } break; + case VPROC_GSK_TRANSACTIONS_ENABLED: + /* Shared memory region is required for transactions. */ + if (unlikely(vproc_shmem == NULL)) { + int po_r = pthread_once(&shmem_inited, vproc_shmem_init); + if (po_r != 0 || vproc_shmem == NULL) { + *outval = 0; + return NULL; + } + } + + if( s_cached_transactions_enabled && outval ) { + *outval = s_cached_transactions_enabled; + return NULL; + } + break; default: break; } @@ -667,6 +671,10 @@ case VPROC_GSK_IS_MANAGED: cached_is_managed = outval ? *outval : dummyval; break; + case VPROC_GSK_TRANSACTIONS_ENABLED: + /* Once you're in the transaction model, you're in for good. Like the Mafia. */ + s_cached_transactions_enabled = 1; + break; default: break; } Modified: branches/PR-5898404/launchd/src/libvproc_private.h =================================================================== --- branches/PR-5898404/launchd/src/libvproc_private.h 2008-08-20 08:31:44 UTC (rev 23682) +++ branches/PR-5898404/launchd/src/libvproc_private.h 2008-08-21 01:06:14 UTC (rev 23683) @@ -51,6 +51,7 @@ VPROC_GSK_GLOBAL_LOG_MASK, VPROC_GSK_GLOBAL_UMASK, VPROC_GSK_ABANDON_PROCESS_GROUP, + VPROC_GSK_TRANSACTIONS_ENABLED } vproc_gsk_t; vproc_err_t vproc_swap_integer(vproc_t vp, vproc_gsk_t key, int64_t *inval, int64_t *outval); @@ -87,7 +88,6 @@ void _vproc_transaction_try_exit(int status); void _vproc_transaction_begin(void); void _vproc_transaction_end(void); -vproc_err_t _vproc_transaction_optin(void); size_t _vproc_transaction_count(void); Modified: branches/PR-5898404/launchd/src/protocol_job.defs =================================================================== --- branches/PR-5898404/launchd/src/protocol_job.defs 2008-08-20 08:31:44 UTC (rev 23682) +++ branches/PR-5898404/launchd/src/protocol_job.defs 2008-08-21 01:06:14 UTC (rev 23683) @@ -62,10 +62,6 @@ __service_port : mach_port_t; __flags : uint64_t); -routine transaction_optin( - __bs_port : job_t; - __flags : uint64_t); - routine look_up2( __bs_port : job_t; sreplyport __rport : mach_port_make_send_once_t; -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080820/c7f9884f/attachment.html From source_changes at macosforge.org Wed Aug 20 18:08:34 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 20 Aug 2008 18:08:34 -0700 (PDT) Subject: [launchd-changes] [23684] branches/PR-5898404/launchd/src/protocol_job_reply.defs Message-ID: <20080821010834.3BA5F2035A3@beta.macosforge.org> Revision: 23684 http://trac.macosforge.org/projects/launchd/changeset/23684 Author: dsorresso at apple.com Date: 2008-08-20 18:08:33 -0700 (Wed, 20 Aug 2008) Log Message: ----------- Removing unnecessary (and potentially harmful) skip in job reply protocol. Modified Paths: -------------- branches/PR-5898404/launchd/src/protocol_job_reply.defs Modified: branches/PR-5898404/launchd/src/protocol_job_reply.defs =================================================================== --- branches/PR-5898404/launchd/src/protocol_job_reply.defs 2008-08-21 01:06:14 UTC (rev 23683) +++ branches/PR-5898404/launchd/src/protocol_job_reply.defs 2008-08-21 01:08:33 UTC (rev 23684) @@ -35,8 +35,6 @@ skip; /* register */ -skip; /* transaction_optin */ - skip; /* look_up */ simpleroutine job_mig_send_signal_reply( -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080820/9e90d79d/attachment.html From source_changes at macosforge.org Wed Aug 20 20:16:26 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 20 Aug 2008 20:16:26 -0700 (PDT) Subject: [launchd-changes] [23685] branches/PR-5898404/launchd/src/libvproc.c Message-ID: <20080821031626.8D604203E54@beta.macosforge.org> Revision: 23685 http://trac.macosforge.org/projects/launchd/changeset/23685 Author: dsorresso at apple.com Date: 2008-08-20 20:16:26 -0700 (Wed, 20 Aug 2008) Log Message: ----------- Fixed a bug exposed by the other bug I was investigating. Modified Paths: -------------- branches/PR-5898404/launchd/src/libvproc.c Modified: branches/PR-5898404/launchd/src/libvproc.c =================================================================== --- branches/PR-5898404/launchd/src/libvproc.c 2008-08-21 01:08:33 UTC (rev 23684) +++ branches/PR-5898404/launchd/src/libvproc.c 2008-08-21 03:16:26 UTC (rev 23685) @@ -647,10 +647,14 @@ case VPROC_GSK_TRANSACTIONS_ENABLED: /* Shared memory region is required for transactions. */ if (unlikely(vproc_shmem == NULL)) { + fprintf(stderr, "Initializing shmem...\n"); int po_r = pthread_once(&shmem_inited, vproc_shmem_init); if (po_r != 0 || vproc_shmem == NULL) { - *outval = 0; - return NULL; + fprintf(stderr, "pthread_once(): %d, vproc_shmem = %p\n", po_r, vproc_shmem); + if( outval ) { + *outval = 0; + } + return (vproc_err_t)vproc_swap_integer; } } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080820/a539e432/attachment-0001.html From source_changes at macosforge.org Wed Aug 20 22:11:24 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 20 Aug 2008 22:11:24 -0700 (PDT) Subject: [launchd-changes] [23686] branches/PR-5898404/launchd/src/libvproc.c Message-ID: <20080821051124.CF366204351@beta.macosforge.org> Revision: 23686 http://trac.macosforge.org/projects/launchd/changeset/23686 Author: dsorresso at apple.com Date: 2008-08-20 22:11:24 -0700 (Wed, 20 Aug 2008) Log Message: ----------- Fixed an error code return. Modified Paths: -------------- branches/PR-5898404/launchd/src/libvproc.c Modified: branches/PR-5898404/launchd/src/libvproc.c =================================================================== --- branches/PR-5898404/launchd/src/libvproc.c 2008-08-21 03:16:26 UTC (rev 23685) +++ branches/PR-5898404/launchd/src/libvproc.c 2008-08-21 05:11:24 UTC (rev 23686) @@ -646,13 +646,11 @@ break; case VPROC_GSK_TRANSACTIONS_ENABLED: /* Shared memory region is required for transactions. */ - if (unlikely(vproc_shmem == NULL)) { - fprintf(stderr, "Initializing shmem...\n"); + if( unlikely(vproc_shmem == NULL) ) { int po_r = pthread_once(&shmem_inited, vproc_shmem_init); - if (po_r != 0 || vproc_shmem == NULL) { - fprintf(stderr, "pthread_once(): %d, vproc_shmem = %p\n", po_r, vproc_shmem); + if( po_r != 0 || vproc_shmem == NULL ) { if( outval ) { - *outval = 0; + *outval = -1; } return (vproc_err_t)vproc_swap_integer; } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080820/f562f4f6/attachment.html From source_changes at macosforge.org Thu Aug 21 15:31:13 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Thu, 21 Aug 2008 15:31:13 -0700 (PDT) Subject: [launchd-changes] [23687] branches/PR-6045086/trunk/ Message-ID: <20080821223113.31FE92071A4@beta.macosforge.org> Revision: 23687 http://trac.macosforge.org/projects/launchd/changeset/23687 Author: dsorresso at apple.com Date: 2008-08-21 15:31:12 -0700 (Thu, 21 Aug 2008) Log Message: ----------- Creating branch PR-6045086 for rdar://problem/6045086. Added Paths: ----------- branches/PR-6045086/trunk/ Copied: branches/PR-6045086/trunk (from rev 23686, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080821/8cfc309f/attachment.html From source_changes at macosforge.org Thu Aug 21 15:34:46 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Thu, 21 Aug 2008 15:34:46 -0700 (PDT) Subject: [launchd-changes] [23688] branches/PR-6045086/trunk/ Message-ID: <20080821223446.382612071E0@beta.macosforge.org> Revision: 23688 http://trac.macosforge.org/projects/launchd/changeset/23688 Author: dsorresso at apple.com Date: 2008-08-21 15:34:45 -0700 (Thu, 21 Aug 2008) Log Message: ----------- Removing extraneous branch. Removed Paths: ------------- branches/PR-6045086/trunk/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080821/9db3eb63/attachment.html From source_changes at macosforge.org Thu Aug 21 19:32:06 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Thu, 21 Aug 2008 19:32:06 -0700 (PDT) Subject: [launchd-changes] [23689] branches/PR-6045086/launchd/src Message-ID: <20080822023206.B79E5207E96@beta.macosforge.org> Revision: 23689 http://trac.macosforge.org/projects/launchd/changeset/23689 Author: dsorresso at apple.com Date: 2008-08-21 19:32:06 -0700 (Thu, 21 Aug 2008) Log Message: ----------- Added some more debugging, turned libgmalloc on. Modified Paths: -------------- branches/PR-6045086/launchd/src/launchd.c branches/PR-6045086/launchd/src/launchd_runtime.c Modified: branches/PR-6045086/launchd/src/launchd.c =================================================================== --- branches/PR-6045086/launchd/src/launchd.c 2008-08-21 22:34:45 UTC (rev 23688) +++ branches/PR-6045086/launchd/src/launchd.c 2008-08-22 02:32:06 UTC (rev 23689) @@ -115,7 +115,7 @@ testfd_or_openfd(STDOUT_FILENO, stdouterr_path, O_WRONLY); testfd_or_openfd(STDERR_FILENO, stdouterr_path, O_WRONLY); -#if 0 +#if 1 if (pid1_magic) { if (!getenv("DYLD_INSERT_LIBRARIES")) { setenv("DYLD_INSERT_LIBRARIES", "/usr/lib/libgmalloc.dylib", 1); Modified: branches/PR-6045086/launchd/src/launchd_runtime.c =================================================================== --- branches/PR-6045086/launchd/src/launchd_runtime.c 2008-08-21 22:34:45 UTC (rev 23688) +++ branches/PR-6045086/launchd/src/launchd_runtime.c 2008-08-22 02:32:06 UTC (rev 23689) @@ -626,6 +626,14 @@ runtime_ktrace0(RTKT_LAUNCHD_BSD_KEVENT|DBG_FUNC_END); #if 1 } else { + if( malloc_size(kevi->udata) ) { + runtime_syslog(LOG_DEBUG, "malloc_size(kevi->udata) = %u\n", (unsigned int)malloc_size(kevi->udata)); + } + + if( dladdr(kevi->udata, &dli) ) { + runtime_syslog(LOG_DEBUG, "dli->dli_fname = %s, dli->dli_fbase = %p, dli->dli_sname = %s, dli->dli_saddr = %p", dli.dli_fname, dli.dli_fbase, dli.dli_sname, dli.dli_saddr); + } + log_kevent_struct(LOG_EMERG, kevi, 0); } #endif -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080821/eadc87cf/attachment.html From source_changes at macosforge.org Fri Aug 22 14:34:47 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Fri, 22 Aug 2008 14:34:47 -0700 (PDT) Subject: [launchd-changes] [23690] branches/PR-5898404/launchd/src Message-ID: <20080822213447.3E36020B8E8@beta.macosforge.org> Revision: 23690 http://trac.macosforge.org/projects/launchd/changeset/23690 Author: dsorresso at apple.com Date: 2008-08-22 14:34:46 -0700 (Fri, 22 Aug 2008) Log Message: ----------- Added a few comments. Put in a fix for an issue found during investigation of rdar://problem/6045086, which doesn't appear to be a launchd bug, so I'm just rolling the fix in here since it's simple enough. Changed _vproc_transaction_begin() to use a compare-and-swap loop to enforce the assumption that the transaction count is one greater after increment and thus making the termination logic correct. Modified Paths: -------------- branches/PR-5898404/launchd/src/launchd_core_logic.c branches/PR-5898404/launchd/src/launchd_runtime.c branches/PR-5898404/launchd/src/libvproc.c Modified: branches/PR-5898404/launchd/src/launchd_core_logic.c =================================================================== --- branches/PR-5898404/launchd/src/launchd_core_logic.c 2008-08-22 02:32:06 UTC (rev 23689) +++ branches/PR-5898404/launchd/src/launchd_core_logic.c 2008-08-22 21:34:46 UTC (rev 23690) @@ -336,7 +336,7 @@ #define AUTO_PICK_LEGACY_LABEL (const char *)(~0) struct job_s { - kq_callback kqjob_callback; + kq_callback kqjob_callback; /* MUST be first element of this structure for benefit of launchd's run loop. */ LIST_ENTRY(job_s) sle; LIST_ENTRY(job_s) pid_hash_sle; LIST_ENTRY(job_s) label_hash_sle; @@ -1054,6 +1054,11 @@ job_assumes(j, kevent_mod((uintptr_t)&j->semaphores, EVFILT_TIMER, EV_DELETE, 0, 0, j) != -1); } + if( j->exit_timeout ) { + /* Not a big deal if this fails. It means that the timer's already been freed. */ + kevent_mod((uintptr_t)&j->exit_timeout, EVFILT_TIMER, EV_DELETE, 0, 0, NULL); + } + kevent_mod((uintptr_t)j, EVFILT_TIMER, EV_DELETE, 0, 0, NULL); LIST_REMOVE(j, sle); Modified: branches/PR-5898404/launchd/src/launchd_runtime.c =================================================================== --- branches/PR-5898404/launchd/src/launchd_runtime.c 2008-08-22 02:32:06 UTC (rev 23689) +++ branches/PR-5898404/launchd/src/launchd_runtime.c 2008-08-22 21:34:46 UTC (rev 23690) @@ -616,9 +616,15 @@ kevi = &kev[i]; if (kevi->filter) { +/* Leave on for SnowLeopard development. We should really try and identify what bugs would + * cause kevi->udata to be invalid. + */ #if 1 Dl_info dli; + /* Check if kevi->udata was either malloc(3)ed or is a valid function pointer. + * If neither, it's probably an invalid pointer and we should log it. + */ if (launchd_assumes(malloc_size(kevi->udata) || dladdr(kevi->udata, &dli))) { #endif runtime_ktrace(RTKT_LAUNCHD_BSD_KEVENT|DBG_FUNC_START, kevi->ident, kevi->filter, kevi->fflags); Modified: branches/PR-5898404/launchd/src/libvproc.c =================================================================== --- branches/PR-5898404/launchd/src/libvproc.c 2008-08-22 02:32:06 UTC (rev 23689) +++ branches/PR-5898404/launchd/src/libvproc.c 2008-08-22 21:34:46 UTC (rev 23690) @@ -96,8 +96,6 @@ void _vproc_transaction_begin(void) { - typeof(vproc_shmem->vp_shmem_transaction_cnt) newval; - if (unlikely(vproc_shmem == NULL)) { int po_r = pthread_once(&shmem_inited, vproc_shmem_init); if (po_r != 0 || vproc_shmem == NULL) { @@ -105,17 +103,20 @@ } } - newval = __sync_add_and_fetch(&vproc_shmem->vp_shmem_transaction_cnt, 1); - - if (unlikely(newval < 1)) { - if (vproc_shmem->vp_shmem_flags & VPROC_SHMEM_EXITING) { - raise(SIGKILL); - __crashreporter_info__ = "raise(SIGKILL) failed"; - } else { - __crashreporter_info__ = "Unbalanced: vproc_transaction_begin()"; + typeof(vproc_shmem->vp_shmem_transaction_cnt) old = 0; + do { + old = vproc_shmem->vp_shmem_transaction_cnt; + + if (unlikely(old < 0)) { + if (vproc_shmem->vp_shmem_flags & VPROC_SHMEM_EXITING) { + raise(SIGKILL); + __crashreporter_info__ = "raise(SIGKILL) failed"; + } else { + __crashreporter_info__ = "Unbalanced: vproc_transaction_begin()"; + } + abort(); } - abort(); - } + } while( !__sync_bool_compare_and_swap(&vproc_shmem->vp_shmem_transaction_cnt, old, old + 1) ); } size_t -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080822/28540539/attachment.html From source_changes at macosforge.org Fri Aug 22 15:03:46 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Fri, 22 Aug 2008 15:03:46 -0700 (PDT) Subject: [launchd-changes] [23691] trunk/launchd/src/launchd_core_logic.c Message-ID: <20080822220346.8B7F820B9CC@beta.macosforge.org> Revision: 23691 http://trac.macosforge.org/projects/launchd/changeset/23691 Author: dsorresso at apple.com Date: 2008-08-22 15:03:45 -0700 (Fri, 22 Aug 2008) Log Message: ----------- Merging in changes for rdar://problem/5874233 Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2008-08-22 21:34:46 UTC (rev 23690) +++ trunk/launchd/src/launchd_core_logic.c 2008-08-22 22:03:45 UTC (rev 23691) @@ -3662,13 +3662,13 @@ } if (unlikely(j->debug)) { - oldmask = runtime_setlogmask(LOG_UPTO(LOG_DEBUG)); + oldmask = setlogmask(LOG_UPTO(LOG_DEBUG)); } runtime_vsyslog(&attr, newmsg, ap); if (unlikely(j->debug)) { - runtime_setlogmask(oldmask); + setlogmask(oldmask); } } @@ -4176,7 +4176,11 @@ return; } - envitem_new(j, key, launch_data_get_string(obj), j->importing_global_env); + if( strncmp(LAUNCHD_TRUSTED_FD_ENV, key, sizeof(LAUNCHD_TRUSTED_FD_ENV) - 1) ) { + envitem_new(j, key, launch_data_get_string(obj), j->importing_global_env); + } else { + job_log(j, LOG_WARNING, "Ignoring reserved environmental variable: %s", key); + } } bool -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080822/9edcbfe4/attachment.html From source_changes at macosforge.org Fri Aug 22 15:06:27 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Fri, 22 Aug 2008 15:06:27 -0700 (PDT) Subject: [launchd-changes] [23692] trunk/launchd/src Message-ID: <20080822220627.6A49520BA0E@beta.macosforge.org> Revision: 23692 http://trac.macosforge.org/projects/launchd/changeset/23692 Author: dsorresso at apple.com Date: 2008-08-22 15:06:26 -0700 (Fri, 22 Aug 2008) Log Message: ----------- Merging in changes for rdar://problem/5923864 Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c trunk/launchd/src/rc.netboot Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2008-08-22 22:03:45 UTC (rev 23691) +++ trunk/launchd/src/launchd_core_logic.c 2008-08-22 22:06:26 UTC (rev 23692) @@ -475,6 +475,7 @@ static bool job_setup_machport(job_t j); static void job_setup_fd(job_t j, int target_fd, const char *path, int flags); static void job_postfork_become_user(job_t j); +static void job_enable_audit_for_user(job_t j, uid_t u, char *name); static void job_postfork_test_user(job_t j); static void job_log_pids_with_weird_uids(job_t j); static void job_force_sampletool(job_t j); @@ -3355,6 +3356,8 @@ desired_gid = gre->gr_gid; } + job_enable_audit_for_user(j, desired_uid, loginname); + if (!job_assumes(j, setlogin(loginname) != -1)) { _exit(EXIT_FAILURE); } @@ -3391,6 +3394,28 @@ } void +job_enable_audit_for_user(job_t j, uid_t u, char *name) +{ + auditinfo_t auinfo = { + .ai_auid = u, + .ai_asid = j->p, + }; + long au_cond; + + if (!job_assumes(j, auditon(A_GETCOND, &au_cond, sizeof(long)) == 0)) { + _exit(EXIT_FAILURE); + } + + if (au_cond != AUC_NOAUDIT) { + if (!job_assumes(j, au_user_mask(name, &auinfo.ai_mask) == 0)) { + _exit(EXIT_FAILURE); + } else if (!job_assumes(j, setaudit(&auinfo) == 0)) { + _exit(EXIT_FAILURE); + } + } +} + +void job_setup_attributes(job_t j) { struct limititem *li; @@ -4176,11 +4201,7 @@ return; } - if( strncmp(LAUNCHD_TRUSTED_FD_ENV, key, sizeof(LAUNCHD_TRUSTED_FD_ENV) - 1) ) { - envitem_new(j, key, launch_data_get_string(obj), j->importing_global_env); - } else { - job_log(j, LOG_WARNING, "Ignoring reserved environmental variable: %s", key); - } + envitem_new(j, key, launch_data_get_string(obj), j->importing_global_env); } bool Modified: trunk/launchd/src/rc.netboot =================================================================== --- trunk/launchd/src/rc.netboot 2008-08-22 22:03:45 UTC (rev 23691) +++ trunk/launchd/src/rc.netboot 2008-08-22 22:06:26 UTC (rev 23692) @@ -1,6 +1,6 @@ #!/bin/sh ## -# Copyright 2002 Apple Computer, Inc. +# Copyright 2002-2008 Apple Inc. # # This script configures NetBoot ## @@ -105,7 +105,11 @@ return 1 fi case "${mount_from}" in - afp:*) fstype=afp;; + afp:*) + fstype=afp + kextload /System/Library/Filesystems/AppleShare/asp_tcp.kext + kextload /System/Library/Filesystems/AppleShare/afpfs.kext + ;; nfs:*) fstype=nfs;; *) echo "unknown network filesystem mount from ${mount_from}" return 1 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080822/6f272b1d/attachment-0001.html From source_changes at macosforge.org Fri Aug 22 15:31:47 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Fri, 22 Aug 2008 15:31:47 -0700 (PDT) Subject: [launchd-changes] [23693] trunk/launchd/src Message-ID: <20080822223148.0392020BD9C@beta.macosforge.org> Revision: 23693 http://trac.macosforge.org/projects/launchd/changeset/23693 Author: dsorresso at apple.com Date: 2008-08-22 15:31:47 -0700 (Fri, 22 Aug 2008) Log Message: ----------- Rolling back last merge that blew away changes for merge before that. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c trunk/launchd/src/rc.netboot Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2008-08-22 22:06:26 UTC (rev 23692) +++ trunk/launchd/src/launchd_core_logic.c 2008-08-22 22:31:47 UTC (rev 23693) @@ -475,7 +475,6 @@ static bool job_setup_machport(job_t j); static void job_setup_fd(job_t j, int target_fd, const char *path, int flags); static void job_postfork_become_user(job_t j); -static void job_enable_audit_for_user(job_t j, uid_t u, char *name); static void job_postfork_test_user(job_t j); static void job_log_pids_with_weird_uids(job_t j); static void job_force_sampletool(job_t j); @@ -3356,8 +3355,6 @@ desired_gid = gre->gr_gid; } - job_enable_audit_for_user(j, desired_uid, loginname); - if (!job_assumes(j, setlogin(loginname) != -1)) { _exit(EXIT_FAILURE); } @@ -3394,28 +3391,6 @@ } void -job_enable_audit_for_user(job_t j, uid_t u, char *name) -{ - auditinfo_t auinfo = { - .ai_auid = u, - .ai_asid = j->p, - }; - long au_cond; - - if (!job_assumes(j, auditon(A_GETCOND, &au_cond, sizeof(long)) == 0)) { - _exit(EXIT_FAILURE); - } - - if (au_cond != AUC_NOAUDIT) { - if (!job_assumes(j, au_user_mask(name, &auinfo.ai_mask) == 0)) { - _exit(EXIT_FAILURE); - } else if (!job_assumes(j, setaudit(&auinfo) == 0)) { - _exit(EXIT_FAILURE); - } - } -} - -void job_setup_attributes(job_t j) { struct limititem *li; @@ -4201,7 +4176,11 @@ return; } - envitem_new(j, key, launch_data_get_string(obj), j->importing_global_env); + if( strncmp(LAUNCHD_TRUSTED_FD_ENV, key, sizeof(LAUNCHD_TRUSTED_FD_ENV) - 1) ) { + envitem_new(j, key, launch_data_get_string(obj), j->importing_global_env); + } else { + job_log(j, LOG_WARNING, "Ignoring reserved environmental variable: %s", key); + } } bool Modified: trunk/launchd/src/rc.netboot =================================================================== --- trunk/launchd/src/rc.netboot 2008-08-22 22:06:26 UTC (rev 23692) +++ trunk/launchd/src/rc.netboot 2008-08-22 22:31:47 UTC (rev 23693) @@ -1,6 +1,6 @@ #!/bin/sh ## -# Copyright 2002-2008 Apple Inc. +# Copyright 2002 Apple Computer, Inc. # # This script configures NetBoot ## @@ -105,11 +105,7 @@ return 1 fi case "${mount_from}" in - afp:*) - fstype=afp - kextload /System/Library/Filesystems/AppleShare/asp_tcp.kext - kextload /System/Library/Filesystems/AppleShare/afpfs.kext - ;; + afp:*) fstype=afp;; nfs:*) fstype=nfs;; *) echo "unknown network filesystem mount from ${mount_from}" return 1 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080822/5b592542/attachment.html From source_changes at macosforge.org Fri Aug 22 15:41:12 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Fri, 22 Aug 2008 15:41:12 -0700 (PDT) Subject: [launchd-changes] [23694] trunk/launchd/src/launchd_core_logic.c Message-ID: <20080822224112.5DA8920BDF5@beta.macosforge.org> Revision: 23694 http://trac.macosforge.org/projects/launchd/changeset/23694 Author: dsorresso at apple.com Date: 2008-08-22 15:41:11 -0700 (Fri, 22 Aug 2008) Log Message: ----------- Merging in changes for rdar://problem/5923864. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2008-08-22 22:31:47 UTC (rev 23693) +++ trunk/launchd/src/launchd_core_logic.c 2008-08-22 22:41:11 UTC (rev 23694) @@ -475,6 +475,7 @@ static bool job_setup_machport(job_t j); static void job_setup_fd(job_t j, int target_fd, const char *path, int flags); static void job_postfork_become_user(job_t j); +static void job_enable_audit_for_user(job_t j, uid_t u, char *name); static void job_postfork_test_user(job_t j); static void job_log_pids_with_weird_uids(job_t j); static void job_force_sampletool(job_t j); @@ -3355,6 +3356,8 @@ desired_gid = gre->gr_gid; } + job_enable_audit_for_user(j, desired_uid, loginname); + if (!job_assumes(j, setlogin(loginname) != -1)) { _exit(EXIT_FAILURE); } @@ -3391,6 +3394,28 @@ } void +job_enable_audit_for_user(job_t j, uid_t u, char *name) +{ + auditinfo_t auinfo = { + .ai_auid = u, + .ai_asid = j->p, + }; + long au_cond; + + if (!job_assumes(j, auditon(A_GETCOND, &au_cond, sizeof(long)) == 0)) { + _exit(EXIT_FAILURE); + } + + if (au_cond != AUC_NOAUDIT) { + if (!job_assumes(j, au_user_mask(name, &auinfo.ai_mask) == 0)) { + _exit(EXIT_FAILURE); + } else if (!job_assumes(j, setaudit(&auinfo) == 0)) { + _exit(EXIT_FAILURE); + } + } +} + +void job_setup_attributes(job_t j) { struct limititem *li; -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080822/21675ff9/attachment.html From source_changes at macosforge.org Fri Aug 22 15:42:13 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Fri, 22 Aug 2008 15:42:13 -0700 (PDT) Subject: [launchd-changes] [23695] trunk/launchd/src/rc.netboot Message-ID: <20080822224213.C904320BE22@beta.macosforge.org> Revision: 23695 http://trac.macosforge.org/projects/launchd/changeset/23695 Author: dsorresso at apple.com Date: 2008-08-22 15:42:13 -0700 (Fri, 22 Aug 2008) Log Message: ----------- Merging changes for rdar://problem/5977502. Modified Paths: -------------- trunk/launchd/src/rc.netboot Modified: trunk/launchd/src/rc.netboot =================================================================== --- trunk/launchd/src/rc.netboot 2008-08-22 22:41:11 UTC (rev 23694) +++ trunk/launchd/src/rc.netboot 2008-08-22 22:42:13 UTC (rev 23695) @@ -1,6 +1,6 @@ #!/bin/sh ## -# Copyright 2002 Apple Computer, Inc. +# Copyright 2002-2008 Apple Inc. # # This script configures NetBoot ## @@ -105,7 +105,11 @@ return 1 fi case "${mount_from}" in - afp:*) fstype=afp;; + afp:*) + fstype=afp + kextload /System/Library/Filesystems/AppleShare/asp_tcp.kext + kextload /System/Library/Filesystems/AppleShare/afpfs.kext + ;; nfs:*) fstype=nfs;; *) echo "unknown network filesystem mount from ${mount_from}" return 1 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080822/bdb1b4ef/attachment-0001.html From source_changes at macosforge.org Fri Aug 22 15:48:58 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Fri, 22 Aug 2008 15:48:58 -0700 (PDT) Subject: [launchd-changes] [23696] trunk/launchd/src Message-ID: <20080822224858.A7C1020BE7E@beta.macosforge.org> Revision: 23696 http://trac.macosforge.org/projects/launchd/changeset/23696 Author: dsorresso at apple.com Date: 2008-08-22 15:48:58 -0700 (Fri, 22 Aug 2008) Log Message: ----------- Merging in changes for rdar://problem/6003804 Modified Paths: -------------- trunk/launchd/src/launchd_internal.defs trunk/launchd/src/launchd_runtime.c Modified: trunk/launchd/src/launchd_internal.defs =================================================================== --- trunk/launchd/src/launchd_internal.defs 2008-08-22 22:42:13 UTC (rev 23695) +++ trunk/launchd/src/launchd_internal.defs 2008-08-22 22:48:58 UTC (rev 23696) @@ -28,6 +28,3 @@ routine handle_kqueue( __port : mach_port_t; __fd : integer_t); - -routine handle_mport( - __port : mach_port_t); Modified: trunk/launchd/src/launchd_runtime.c =================================================================== --- trunk/launchd/src/launchd_runtime.c 2008-08-22 22:42:13 UTC (rev 23695) +++ trunk/launchd/src/launchd_runtime.c 2008-08-22 22:48:58 UTC (rev 23696) @@ -86,9 +86,9 @@ static int bulk_kev_cnt; static pthread_t kqueue_demand_thread; -static pthread_t demand_thread; -static void *mport_demand_loop(void *arg); +static void mportset_callback(void); +static kq_callback kqmportset_callback = (kq_callback)mportset_callback; static void *kqueue_demand_loop(void *arg); static void log_kevent_struct(int level, struct kevent *kev_base, int indx); @@ -155,6 +155,8 @@ launchd_assert((errno = mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_PORT_SET, &demand_port_set)) == KERN_SUCCESS); launchd_assert((errno = mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_PORT_SET, &ipc_port_set)) == KERN_SUCCESS); + launchd_assert(kevent_mod(demand_port_set, EVFILT_MACHPORT, EV_ADD, 0, 0, &kqmportset_callback) != -1); + launchd_assert(launchd_mport_create_recv(&launchd_internal_port) == KERN_SUCCESS); launchd_assert(launchd_mport_make_send(launchd_internal_port) == KERN_SUCCESS); @@ -172,12 +174,6 @@ launchd_assert(pthread_create(&kqueue_demand_thread, &attr, kqueue_demand_loop, NULL) == 0); pthread_attr_destroy(&attr); - pthread_attr_init(&attr); - pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); - pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN); - launchd_assert(pthread_create(&demand_thread, &attr, mport_demand_loop, NULL) == 0); - pthread_attr_destroy(&attr); - launchd_assumes(sysctlbyname("vfs.generic.noremotehang", NULL, NULL, &p, sizeof(p)) != -1); } @@ -192,25 +188,6 @@ } } -void * -mport_demand_loop(void *arg __attribute__((unused))) -{ - mach_msg_empty_rcv_t dummy; - kern_return_t kr; - - for (;;) { - kr = mach_msg(&dummy.header, MACH_RCV_MSG|MACH_RCV_LARGE, 0, 0, demand_port_set, 0, MACH_PORT_NULL); - if (unlikely(kr == MACH_RCV_PORT_CHANGED)) { - break; - } else if (!launchd_assumes(kr == MACH_RCV_TOO_LARGE)) { - continue; - } - launchd_assumes(handle_mport(launchd_internal_port) == 0); - } - - return NULL; -} - INTERNAL_ABI const char * proc_flags_to_C_names(unsigned int flags) { @@ -531,8 +508,8 @@ indx, kev->udata, kev->data, ident_buf, filter_str, flags_buf, fflags_buf); } -kern_return_t -x_handle_mport(mach_port_t junk __attribute__((unused))) +void +mportset_callback(void) { mach_port_name_array_t members; mach_msg_type_number_t membersCnt; @@ -542,7 +519,7 @@ unsigned int i; if (!launchd_assumes((errno = mach_port_get_set_status(mach_task_self(), demand_port_set, &members, &membersCnt)) == KERN_SUCCESS)) { - return 1; + return; } for (i = 0; i < membersCnt; i++) { @@ -570,8 +547,6 @@ launchd_assumes(vm_deallocate(mach_task_self(), (vm_address_t)members, (vm_size_t) membersCnt * sizeof(mach_port_name_t)) == KERN_SUCCESS); - - return 0; } void * -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080822/518df963/attachment.html From source_changes at macosforge.org Fri Aug 22 15:53:46 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Fri, 22 Aug 2008 15:53:46 -0700 (PDT) Subject: [launchd-changes] [23697] trunk/launchd/src Message-ID: <20080822225346.E032F20BED0@beta.macosforge.org> Revision: 23697 http://trac.macosforge.org/projects/launchd/changeset/23697 Author: dsorresso at apple.com Date: 2008-08-22 15:53:46 -0700 (Fri, 22 Aug 2008) Log Message: ----------- Merging in changes for rdar://problem/6112446 Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c trunk/launchd/src/libbootstrap.c trunk/launchd/src/libbootstrap_private.h trunk/launchd/src/protocol_job.defs Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2008-08-22 22:48:58 UTC (rev 23696) +++ trunk/launchd/src/launchd_core_logic.c 2008-08-22 22:53:46 UTC (rev 23697) @@ -6507,6 +6507,7 @@ kr = BOOTSTRAP_SUCCESS; } else if (!per_pid_lookup && (inherited_bootstrap_port != MACH_PORT_NULL)) { job_log(j, LOG_DEBUG, "Mach service lookup forwarded: %s", servicename); + /* Clients potentially check the audit token of the reply to verify that the returned send right is trustworthy. */ job_assumes(j, vproc_mig_look_up2_forward(inherited_bootstrap_port, srp, servicename, 0, 0) == 0); /* The previous routine moved the reply port, we're forced to return MIG_NO_REPLY now */ return MIG_NO_REPLY; Modified: trunk/launchd/src/libbootstrap.c =================================================================== --- trunk/launchd/src/libbootstrap.c 2008-08-22 22:48:58 UTC (rev 23696) +++ trunk/launchd/src/libbootstrap.c 2008-08-22 22:53:46 UTC (rev 23697) @@ -141,6 +141,7 @@ kern_return_t bootstrap_look_up_per_user(mach_port_t bp, name_t service_name, uid_t target_user, mach_port_t *sp) { + audit_token_t au_tok; struct stat sb; kern_return_t kr; mach_port_t puc; @@ -153,7 +154,7 @@ return kr; } - kr = vproc_mig_look_up2(puc, service_name, sp, 0, 0); + kr = vproc_mig_look_up2(puc, service_name, sp, &au_tok, 0, 0); mach_port_deallocate(mach_task_self(), puc); return kr; @@ -173,6 +174,7 @@ static mach_port_t prev_bp; static mach_port_t prev_sp; static name_t prev_name; + audit_token_t au_tok; bool per_pid_lookup = flags & BOOTSTRAP_PER_PID_SERVICE; kern_return_t kr = 0; mach_port_t puc; @@ -195,7 +197,7 @@ } skip_cache: - if ((kr = vproc_mig_look_up2(bp, service_name, sp, target_pid, flags)) != VPROC_ERR_TRY_PER_USER) { + if ((kr = vproc_mig_look_up2(bp, service_name, sp, &au_tok, target_pid, flags)) != VPROC_ERR_TRY_PER_USER) { goto out; } @@ -203,7 +205,7 @@ goto out; } - kr = vproc_mig_look_up2(puc, service_name, sp, target_pid, flags); + kr = vproc_mig_look_up2(puc, service_name, sp, &au_tok, target_pid, flags); mach_port_deallocate(mach_task_self(), puc); out: @@ -217,6 +219,27 @@ pthread_mutex_unlock(&bslu2_lock); + if ((kr == 0) && (flags & BOOTSTRAP_PRIVILEGED_SERVER)) { + uid_t server_euid; + + /* + * The audit token magic is dependent on the per-user launchd + * forwarding MIG requests to the root launchd when it cannot + * find the answer locally. + */ + + /* This API should be in Libsystem, but is not */ + //audit_token_to_au32(au_tok, NULL, &server_euid, NULL, NULL, NULL, NULL, NULL, NULL); + + server_euid = au_tok.val[1]; + + if (server_euid) { + mach_port_deallocate(mach_task_self(), *sp); + kr = BOOTSTRAP_NOT_PRIVILEGED; + } + + } + return kr; } Modified: trunk/launchd/src/libbootstrap_private.h =================================================================== --- trunk/launchd/src/libbootstrap_private.h 2008-08-22 22:48:58 UTC (rev 23696) +++ trunk/launchd/src/libbootstrap_private.h 2008-08-22 22:53:46 UTC (rev 23697) @@ -30,6 +30,7 @@ #define BOOTSTRAP_PER_PID_SERVICE 0x1 #define BOOTSTRAP_ALLOW_LOOKUP 0x2 #define BOOTSTRAP_DENY_JOB_CREATION 0x4 +#define BOOTSTRAP_PRIVILEGED_SERVER 0x8 kern_return_t bootstrap_register2(mach_port_t bp, name_t service_name, mach_port_t sp, uint64_t flags); Modified: trunk/launchd/src/protocol_job.defs =================================================================== --- trunk/launchd/src/protocol_job.defs 2008-08-22 22:48:58 UTC (rev 23696) +++ trunk/launchd/src/protocol_job.defs 2008-08-22 22:53:46 UTC (rev 23697) @@ -67,6 +67,7 @@ sreplyport __rport : mach_port_make_send_once_t; __service_name : name_t; out __service_port : mach_port_t; + UserAuditToken __server_cred: audit_token_t; __target_pid : pid_t; __flags : uint64_t); -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080822/5723c6c2/attachment-0001.html From source_changes at macosforge.org Fri Aug 22 16:01:23 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Fri, 22 Aug 2008 16:01:23 -0700 (PDT) Subject: [launchd-changes] [23698] tags/launchd-281/ Message-ID: <20080822230123.6547B20BF49@beta.macosforge.org> Revision: 23698 http://trac.macosforge.org/projects/launchd/changeset/23698 Author: dsorresso at apple.com Date: 2008-08-22 16:01:23 -0700 (Fri, 22 Aug 2008) Log Message: ----------- "Tagging launchd-281 from https://svn.macosforge.org/repository/launchd/trunk" Added Paths: ----------- tags/launchd-281/ Copied: tags/launchd-281 (from rev 23697, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080822/26331449/attachment.html From source_changes at macosforge.org Mon Aug 25 14:11:07 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Mon, 25 Aug 2008 14:11:07 -0700 (PDT) Subject: [launchd-changes] [23699] trunk/launchd/src Message-ID: <20080825211107.677DA2225BA@beta.macosforge.org> Revision: 23699 http://trac.macosforge.org/projects/launchd/changeset/23699 Author: dsorresso at apple.com Date: 2008-08-25 14:11:07 -0700 (Mon, 25 Aug 2008) Log Message: ----------- Backing out change for rdar://problem/6003804, which caused rdar://problem/6173994. Will re-integrate once rdar://problem/6006324 is fixed. Modified Paths: -------------- trunk/launchd/src/launchd_internal.defs trunk/launchd/src/launchd_runtime.c Modified: trunk/launchd/src/launchd_internal.defs =================================================================== --- trunk/launchd/src/launchd_internal.defs 2008-08-22 23:01:23 UTC (rev 23698) +++ trunk/launchd/src/launchd_internal.defs 2008-08-25 21:11:07 UTC (rev 23699) @@ -28,3 +28,6 @@ routine handle_kqueue( __port : mach_port_t; __fd : integer_t); + +routine handle_mport( + __port : mach_port_t); Modified: trunk/launchd/src/launchd_runtime.c =================================================================== --- trunk/launchd/src/launchd_runtime.c 2008-08-22 23:01:23 UTC (rev 23698) +++ trunk/launchd/src/launchd_runtime.c 2008-08-25 21:11:07 UTC (rev 23699) @@ -86,9 +86,9 @@ static int bulk_kev_cnt; static pthread_t kqueue_demand_thread; +static pthread_t demand_thread; -static void mportset_callback(void); -static kq_callback kqmportset_callback = (kq_callback)mportset_callback; +static void *mport_demand_loop(void *arg); static void *kqueue_demand_loop(void *arg); static void log_kevent_struct(int level, struct kevent *kev_base, int indx); @@ -155,8 +155,6 @@ launchd_assert((errno = mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_PORT_SET, &demand_port_set)) == KERN_SUCCESS); launchd_assert((errno = mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_PORT_SET, &ipc_port_set)) == KERN_SUCCESS); - launchd_assert(kevent_mod(demand_port_set, EVFILT_MACHPORT, EV_ADD, 0, 0, &kqmportset_callback) != -1); - launchd_assert(launchd_mport_create_recv(&launchd_internal_port) == KERN_SUCCESS); launchd_assert(launchd_mport_make_send(launchd_internal_port) == KERN_SUCCESS); @@ -174,6 +172,12 @@ launchd_assert(pthread_create(&kqueue_demand_thread, &attr, kqueue_demand_loop, NULL) == 0); pthread_attr_destroy(&attr); + pthread_attr_init(&attr); + pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); + pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN); + launchd_assert(pthread_create(&demand_thread, &attr, mport_demand_loop, NULL) == 0); + pthread_attr_destroy(&attr); + launchd_assumes(sysctlbyname("vfs.generic.noremotehang", NULL, NULL, &p, sizeof(p)) != -1); } @@ -188,6 +192,25 @@ } } +void * +mport_demand_loop(void *arg __attribute__((unused))) +{ + mach_msg_empty_rcv_t dummy; + kern_return_t kr; + + for (;;) { + kr = mach_msg(&dummy.header, MACH_RCV_MSG|MACH_RCV_LARGE, 0, 0, demand_port_set, 0, MACH_PORT_NULL); + if (unlikely(kr == MACH_RCV_PORT_CHANGED)) { + break; + } else if (!launchd_assumes(kr == MACH_RCV_TOO_LARGE)) { + continue; + } + launchd_assumes(handle_mport(launchd_internal_port) == 0); + } + + return NULL; +} + INTERNAL_ABI const char * proc_flags_to_C_names(unsigned int flags) { @@ -508,8 +531,8 @@ indx, kev->udata, kev->data, ident_buf, filter_str, flags_buf, fflags_buf); } -void -mportset_callback(void) +kern_return_t +x_handle_mport(mach_port_t junk __attribute__((unused))) { mach_port_name_array_t members; mach_msg_type_number_t membersCnt; @@ -519,7 +542,7 @@ unsigned int i; if (!launchd_assumes((errno = mach_port_get_set_status(mach_task_self(), demand_port_set, &members, &membersCnt)) == KERN_SUCCESS)) { - return; + return 1; } for (i = 0; i < membersCnt; i++) { @@ -547,6 +570,8 @@ launchd_assumes(vm_deallocate(mach_task_self(), (vm_address_t)members, (vm_size_t) membersCnt * sizeof(mach_port_name_t)) == KERN_SUCCESS); + + return 0; } void * -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080825/39c5a2f5/attachment.html From source_changes at macosforge.org Mon Aug 25 14:11:32 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Mon, 25 Aug 2008 14:11:32 -0700 (PDT) Subject: [launchd-changes] [23700] tags/launchd-282/ Message-ID: <20080825211132.F14A92225DD@beta.macosforge.org> Revision: 23700 http://trac.macosforge.org/projects/launchd/changeset/23700 Author: dsorresso at apple.com Date: 2008-08-25 14:11:32 -0700 (Mon, 25 Aug 2008) Log Message: ----------- "Tagging launchd-282 from https://svn.macosforge.org/repository/launchd/trunk" Added Paths: ----------- tags/launchd-282/ Copied: tags/launchd-282 (from rev 23699, trunk) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080825/35dd3050/attachment.html From source_changes at macosforge.org Wed Aug 27 11:32:53 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 27 Aug 2008 11:32:53 -0700 (PDT) Subject: [launchd-changes] [23701] trunk Message-ID: <20080827183253.A85CA2864FD@beta.macosforge.org> Revision: 23701 http://trac.macosforge.org/projects/launchd/changeset/23701 Author: dsorresso at apple.com Date: 2008-08-27 11:32:52 -0700 (Wed, 27 Aug 2008) Log Message: ----------- Merging changes for rdar://problem/5898404. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c trunk/launchd/src/launchd_runtime.c trunk/launchd/src/libvproc.c trunk/launchd/src/libvproc_private.h Property Changed: ---------------- trunk/ Property changes on: trunk ___________________________________________________________________ Added: svn:mergeinfo + /branches/PR-5898404:23681-23700 Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2008-08-25 21:11:32 UTC (rev 23700) +++ trunk/launchd/src/launchd_core_logic.c 2008-08-27 18:32:52 UTC (rev 23701) @@ -336,7 +336,7 @@ #define AUTO_PICK_LEGACY_LABEL (const char *)(~0) struct job_s { - kq_callback kqjob_callback; + kq_callback kqjob_callback; /* MUST be first element of this structure for benefit of launchd's run loop. */ LIST_ENTRY(job_s) sle; LIST_ENTRY(job_s) pid_hash_sle; LIST_ENTRY(job_s) label_hash_sle; @@ -1055,6 +1055,11 @@ job_assumes(j, kevent_mod((uintptr_t)&j->semaphores, EVFILT_TIMER, EV_DELETE, 0, 0, j) != -1); } + if( j->exit_timeout ) { + /* Not a big deal if this fails. It means that the timer's already been freed. */ + kevent_mod((uintptr_t)&j->exit_timeout, EVFILT_TIMER, EV_DELETE, 0, 0, NULL); + } + kevent_mod((uintptr_t)j, EVFILT_TIMER, EV_DELETE, 0, 0, NULL); LIST_REMOVE(j, sle); @@ -6046,6 +6051,10 @@ *outval = oldmask; umask(oldmask); break; + case VPROC_GSK_TRANSACTIONS_ENABLED: + job_log(j, LOG_DEBUG, "Reading transaction model status."); + *outval = j->kill_via_shmem; + break; case 0: *outval = 0; break; @@ -6110,6 +6119,15 @@ umask((mode_t) inval); } break; + case VPROC_GSK_TRANSACTIONS_ENABLED: + if( !job_assumes(j, inval != 0) ) { + job_log(j, LOG_WARNING, "Attempt to unregister from transaction model. This is not supported."); + kr = 1; + } else { + job_log(j, LOG_DEBUG, "Now participating in transaction model."); + j->kill_via_shmem = (bool)inval; + job_log(j, LOG_DEBUG, "j->kill_via_shmem = %s", j->kill_via_shmem ? "YES" : "NO"); + } case 0: break; default: Modified: trunk/launchd/src/launchd_runtime.c =================================================================== --- trunk/launchd/src/launchd_runtime.c 2008-08-25 21:11:32 UTC (rev 23700) +++ trunk/launchd/src/launchd_runtime.c 2008-08-27 18:32:52 UTC (rev 23701) @@ -616,9 +616,15 @@ kevi = &kev[i]; if (kevi->filter) { +/* Leave on for SnowLeopard development. We should really try and identify what bugs would + * cause kevi->udata to be invalid. + */ #if 1 Dl_info dli; + /* Check if kevi->udata was either malloc(3)ed or is a valid function pointer. + * If neither, it's probably an invalid pointer and we should log it. + */ if (launchd_assumes(malloc_size(kevi->udata) || dladdr(kevi->udata, &dli))) { #endif runtime_ktrace(RTKT_LAUNCHD_BSD_KEVENT|DBG_FUNC_START, kevi->ident, kevi->filter, kevi->fflags); Modified: trunk/launchd/src/libvproc.c =================================================================== --- trunk/launchd/src/libvproc.c 2008-08-25 21:11:32 UTC (rev 23700) +++ trunk/launchd/src/libvproc.c 2008-08-27 18:32:52 UTC (rev 23701) @@ -56,6 +56,7 @@ static int64_t cached_pid = -1; static struct vproc_shmem_s *vproc_shmem; static pthread_once_t shmem_inited = PTHREAD_ONCE_INIT; +static uint64_t s_cached_transactions_enabled = 0; static void vproc_shmem_init(void) @@ -95,8 +96,6 @@ void _vproc_transaction_begin(void) { - typeof(vproc_shmem->vp_shmem_transaction_cnt) newval; - if (unlikely(vproc_shmem == NULL)) { int po_r = pthread_once(&shmem_inited, vproc_shmem_init); if (po_r != 0 || vproc_shmem == NULL) { @@ -104,17 +103,20 @@ } } - newval = __sync_add_and_fetch(&vproc_shmem->vp_shmem_transaction_cnt, 1); - - if (unlikely(newval < 1)) { - if (vproc_shmem->vp_shmem_flags & VPROC_SHMEM_EXITING) { - raise(SIGKILL); - __crashreporter_info__ = "raise(SIGKILL) failed"; - } else { - __crashreporter_info__ = "Unbalanced: vproc_transaction_begin()"; + typeof(vproc_shmem->vp_shmem_transaction_cnt) old = 0; + do { + old = vproc_shmem->vp_shmem_transaction_cnt; + + if (unlikely(old < 0)) { + if (vproc_shmem->vp_shmem_flags & VPROC_SHMEM_EXITING) { + raise(SIGKILL); + __crashreporter_info__ = "raise(SIGKILL) failed"; + } else { + __crashreporter_info__ = "Unbalanced: vproc_transaction_begin()"; + } + abort(); } - abort(); - } + } while( !__sync_bool_compare_and_swap(&vproc_shmem->vp_shmem_transaction_cnt, old, old + 1) ); } size_t @@ -643,6 +645,23 @@ return NULL; } break; + case VPROC_GSK_TRANSACTIONS_ENABLED: + /* Shared memory region is required for transactions. */ + if( unlikely(vproc_shmem == NULL) ) { + int po_r = pthread_once(&shmem_inited, vproc_shmem_init); + if( po_r != 0 || vproc_shmem == NULL ) { + if( outval ) { + *outval = -1; + } + return (vproc_err_t)vproc_swap_integer; + } + } + + if( s_cached_transactions_enabled && outval ) { + *outval = s_cached_transactions_enabled; + return NULL; + } + break; default: break; } @@ -655,6 +674,10 @@ case VPROC_GSK_IS_MANAGED: cached_is_managed = outval ? *outval : dummyval; break; + case VPROC_GSK_TRANSACTIONS_ENABLED: + /* Once you're in the transaction model, you're in for good. Like the Mafia. */ + s_cached_transactions_enabled = 1; + break; default: break; } Modified: trunk/launchd/src/libvproc_private.h =================================================================== --- trunk/launchd/src/libvproc_private.h 2008-08-25 21:11:32 UTC (rev 23700) +++ trunk/launchd/src/libvproc_private.h 2008-08-27 18:32:52 UTC (rev 23701) @@ -51,6 +51,7 @@ VPROC_GSK_GLOBAL_LOG_MASK, VPROC_GSK_GLOBAL_UMASK, VPROC_GSK_ABANDON_PROCESS_GROUP, + VPROC_GSK_TRANSACTIONS_ENABLED } vproc_gsk_t; vproc_err_t vproc_swap_integer(vproc_t vp, vproc_gsk_t key, int64_t *inval, int64_t *outval); -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080827/b4fc713a/attachment.html From source_changes at macosforge.org Wed Aug 27 11:34:06 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 27 Aug 2008 11:34:06 -0700 (PDT) Subject: [launchd-changes] [23702] trunk Message-ID: <20080827183407.4ABC028652C@beta.macosforge.org> Revision: 23702 http://trac.macosforge.org/projects/launchd/changeset/23702 Author: dsorresso at apple.com Date: 2008-08-27 11:34:05 -0700 (Wed, 27 Aug 2008) Log Message: ----------- Merging changes for rdar://problem/5978442. Modified Paths: -------------- trunk/launchd/src/liblaunch.c Property Changed: ---------------- trunk/ Property changes on: trunk ___________________________________________________________________ Modified: svn:mergeinfo - /branches/PR-5898404:23681-23700 + /branches/PR-5898404:23681-23700 /branches/PR-5978442:23651-23701 Modified: trunk/launchd/src/liblaunch.c =================================================================== --- trunk/launchd/src/liblaunch.c 2008-08-27 18:32:52 UTC (rev 23701) +++ trunk/launchd/src/liblaunch.c 2008-08-27 18:34:05 UTC (rev 23702) @@ -608,16 +608,17 @@ launch_data_pack(launch_data_t d, void *where, size_t len, int *fd_where, size_t *fd_cnt) { launch_data_t o_in_w = where; - size_t i, rsz, total_data_len = sizeof(struct _launch_data); + size_t i, rsz, node_data_len = sizeof(struct _launch_data); - if (total_data_len > len) { + if (node_data_len > len) { return 0; } - where += total_data_len; + where += node_data_len; o_in_w->type = host2wire(d->type); + size_t pad_len = 0; switch (d->type) { case LAUNCH_DATA_INTEGER: o_in_w->number = host2wire(d->number); @@ -640,44 +641,55 @@ break; case LAUNCH_DATA_STRING: o_in_w->string_len = host2wire(d->string_len); - total_data_len += ROUND_TO_64BIT_WORD_SIZE(strlen(d->string) + 1); - if (total_data_len > len) { + node_data_len += ROUND_TO_64BIT_WORD_SIZE(d->string_len + 1); + + if (node_data_len > len) { return 0; } - memcpy(where, d->string, strlen(d->string) + 1); + memcpy(where, d->string, d->string_len + 1); + + /* Zero padded data. */ + pad_len = ROUND_TO_64BIT_WORD_SIZE(d->string_len + 1) - (d->string_len + 1); + bzero(where + d->string_len + 1, pad_len); + break; case LAUNCH_DATA_OPAQUE: o_in_w->opaque_size = host2wire(d->opaque_size); - total_data_len += ROUND_TO_64BIT_WORD_SIZE(d->opaque_size); - if (total_data_len > len) { + node_data_len += ROUND_TO_64BIT_WORD_SIZE(d->opaque_size); + if (node_data_len > len) { return 0; } memcpy(where, d->opaque, d->opaque_size); + + /* Zero padded data. */ + pad_len = ROUND_TO_64BIT_WORD_SIZE(d->opaque_size) - d->opaque_size; + bzero(where + d->opaque_size, pad_len); + break; case LAUNCH_DATA_DICTIONARY: case LAUNCH_DATA_ARRAY: o_in_w->_array_cnt = host2wire(d->_array_cnt); - total_data_len += d->_array_cnt * sizeof(uint64_t); - if (total_data_len > len) { + node_data_len += d->_array_cnt * sizeof(uint64_t); + if (node_data_len > len) { return 0; } where += d->_array_cnt * sizeof(uint64_t); for (i = 0; i < d->_array_cnt; i++) { - rsz = launch_data_pack(d->_array[i], where, len - total_data_len, fd_where, fd_cnt); + rsz = launch_data_pack(d->_array[i], where, len - node_data_len, fd_where, fd_cnt); if (rsz == 0) { return 0; } where += rsz; - total_data_len += rsz; + node_data_len += rsz; } break; default: break; } - return total_data_len; + return node_data_len; } launch_data_t -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080827/92afcdc7/attachment-0001.html From source_changes at macosforge.org Wed Aug 27 14:50:57 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 27 Aug 2008 14:50:57 -0700 (PDT) Subject: [launchd-changes] [23703] trunk/launchd/src/liblaunch.c Message-ID: <20080827215057.EE73D28BFF6@beta.macosforge.org> Revision: 23703 http://trac.macosforge.org/projects/launchd/changeset/23703 Author: dsorresso at apple.com Date: 2008-08-27 14:50:57 -0700 (Wed, 27 Aug 2008) Log Message: ----------- Oops, wrong branch for rdar://problem/5978442. Modified Paths: -------------- trunk/launchd/src/liblaunch.c Modified: trunk/launchd/src/liblaunch.c =================================================================== --- trunk/launchd/src/liblaunch.c 2008-08-27 18:34:05 UTC (rev 23702) +++ trunk/launchd/src/liblaunch.c 2008-08-27 21:50:57 UTC (rev 23703) @@ -608,17 +608,16 @@ launch_data_pack(launch_data_t d, void *where, size_t len, int *fd_where, size_t *fd_cnt) { launch_data_t o_in_w = where; - size_t i, rsz, node_data_len = sizeof(struct _launch_data); + size_t i, rsz, total_data_len = sizeof(struct _launch_data); - if (node_data_len > len) { + if (total_data_len > len) { return 0; } - where += node_data_len; + where += total_data_len; o_in_w->type = host2wire(d->type); - size_t pad_len = 0; switch (d->type) { case LAUNCH_DATA_INTEGER: o_in_w->number = host2wire(d->number); @@ -641,55 +640,44 @@ break; case LAUNCH_DATA_STRING: o_in_w->string_len = host2wire(d->string_len); - node_data_len += ROUND_TO_64BIT_WORD_SIZE(d->string_len + 1); - - if (node_data_len > len) { + total_data_len += ROUND_TO_64BIT_WORD_SIZE(strlen(d->string) + 1); + if (total_data_len > len) { return 0; } - memcpy(where, d->string, d->string_len + 1); - - /* Zero padded data. */ - pad_len = ROUND_TO_64BIT_WORD_SIZE(d->string_len + 1) - (d->string_len + 1); - bzero(where + d->string_len + 1, pad_len); - + memcpy(where, d->string, strlen(d->string) + 1); break; case LAUNCH_DATA_OPAQUE: o_in_w->opaque_size = host2wire(d->opaque_size); - node_data_len += ROUND_TO_64BIT_WORD_SIZE(d->opaque_size); - if (node_data_len > len) { + total_data_len += ROUND_TO_64BIT_WORD_SIZE(d->opaque_size); + if (total_data_len > len) { return 0; } memcpy(where, d->opaque, d->opaque_size); - - /* Zero padded data. */ - pad_len = ROUND_TO_64BIT_WORD_SIZE(d->opaque_size) - d->opaque_size; - bzero(where + d->opaque_size, pad_len); - break; case LAUNCH_DATA_DICTIONARY: case LAUNCH_DATA_ARRAY: o_in_w->_array_cnt = host2wire(d->_array_cnt); - node_data_len += d->_array_cnt * sizeof(uint64_t); - if (node_data_len > len) { + total_data_len += d->_array_cnt * sizeof(uint64_t); + if (total_data_len > len) { return 0; } where += d->_array_cnt * sizeof(uint64_t); for (i = 0; i < d->_array_cnt; i++) { - rsz = launch_data_pack(d->_array[i], where, len - node_data_len, fd_where, fd_cnt); + rsz = launch_data_pack(d->_array[i], where, len - total_data_len, fd_where, fd_cnt); if (rsz == 0) { return 0; } where += rsz; - node_data_len += rsz; + total_data_len += rsz; } break; default: break; } - return node_data_len; + return total_data_len; } launch_data_t -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080827/a8f26db2/attachment.html From source_changes at macosforge.org Wed Aug 27 15:14:01 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 27 Aug 2008 15:14:01 -0700 (PDT) Subject: [launchd-changes] [23704] trunk/launchd/src/liblaunch.c Message-ID: <20080827221401.3859728C21D@beta.macosforge.org> Revision: 23704 http://trac.macosforge.org/projects/launchd/changeset/23704 Author: dsorresso at apple.com Date: 2008-08-27 15:14:00 -0700 (Wed, 27 Aug 2008) Log Message: ----------- Nevermind. Modified Paths: -------------- trunk/launchd/src/liblaunch.c Modified: trunk/launchd/src/liblaunch.c =================================================================== --- trunk/launchd/src/liblaunch.c 2008-08-27 21:50:57 UTC (rev 23703) +++ trunk/launchd/src/liblaunch.c 2008-08-27 22:14:00 UTC (rev 23704) @@ -608,16 +608,17 @@ launch_data_pack(launch_data_t d, void *where, size_t len, int *fd_where, size_t *fd_cnt) { launch_data_t o_in_w = where; - size_t i, rsz, total_data_len = sizeof(struct _launch_data); + size_t i, rsz, node_data_len = sizeof(struct _launch_data); - if (total_data_len > len) { + if (node_data_len > len) { return 0; } - where += total_data_len; + where += node_data_len; o_in_w->type = host2wire(d->type); + size_t pad_len = 0; switch (d->type) { case LAUNCH_DATA_INTEGER: o_in_w->number = host2wire(d->number); @@ -640,44 +641,55 @@ break; case LAUNCH_DATA_STRING: o_in_w->string_len = host2wire(d->string_len); - total_data_len += ROUND_TO_64BIT_WORD_SIZE(strlen(d->string) + 1); - if (total_data_len > len) { + node_data_len += ROUND_TO_64BIT_WORD_SIZE(d->string_len + 1); + + if (node_data_len > len) { return 0; } - memcpy(where, d->string, strlen(d->string) + 1); + memcpy(where, d->string, d->string_len + 1); + + /* Zero padded data. */ + pad_len = ROUND_TO_64BIT_WORD_SIZE(d->string_len + 1) - (d->string_len + 1); + bzero(where + d->string_len + 1, pad_len); + break; case LAUNCH_DATA_OPAQUE: o_in_w->opaque_size = host2wire(d->opaque_size); - total_data_len += ROUND_TO_64BIT_WORD_SIZE(d->opaque_size); - if (total_data_len > len) { + node_data_len += ROUND_TO_64BIT_WORD_SIZE(d->opaque_size); + if (node_data_len > len) { return 0; } memcpy(where, d->opaque, d->opaque_size); + + /* Zero padded data. */ + pad_len = ROUND_TO_64BIT_WORD_SIZE(d->opaque_size) - d->opaque_size; + bzero(where + d->opaque_size, pad_len); + break; case LAUNCH_DATA_DICTIONARY: case LAUNCH_DATA_ARRAY: o_in_w->_array_cnt = host2wire(d->_array_cnt); - total_data_len += d->_array_cnt * sizeof(uint64_t); - if (total_data_len > len) { + node_data_len += d->_array_cnt * sizeof(uint64_t); + if (node_data_len > len) { return 0; } where += d->_array_cnt * sizeof(uint64_t); for (i = 0; i < d->_array_cnt; i++) { - rsz = launch_data_pack(d->_array[i], where, len - total_data_len, fd_where, fd_cnt); + rsz = launch_data_pack(d->_array[i], where, len - node_data_len, fd_where, fd_cnt); if (rsz == 0) { return 0; } where += rsz; - total_data_len += rsz; + node_data_len += rsz; } break; default: break; } - return total_data_len; + return node_data_len; } launch_data_t -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080827/e8ac131f/attachment.html From source_changes at macosforge.org Wed Aug 27 15:17:52 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Wed, 27 Aug 2008 15:17:52 -0700 (PDT) Subject: [launchd-changes] [23705] trunk/launchd/src/launchd_unix_ipc.c Message-ID: <20080827221752.ED3F128C305@beta.macosforge.org> Revision: 23705 http://trac.macosforge.org/projects/launchd/changeset/23705 Author: dsorresso at apple.com Date: 2008-08-27 15:17:52 -0700 (Wed, 27 Aug 2008) Log Message: ----------- Merging change for rdar://problem/5986602. Modified Paths: -------------- trunk/launchd/src/launchd_unix_ipc.c Modified: trunk/launchd/src/launchd_unix_ipc.c =================================================================== --- trunk/launchd/src/launchd_unix_ipc.c 2008-08-27 22:14:00 UTC (rev 23704) +++ trunk/launchd/src/launchd_unix_ipc.c 2008-08-27 22:17:52 UTC (rev 23705) @@ -472,12 +472,6 @@ gstr = "kern.maxfiles"; pstr = "kern.maxfilesperproc"; break; - case RLIMIT_NPROC: - /* kernel will not clamp to this value, we must */ - if (gval > (2048 + 20)) { - gval = 2048 + 20; - } - break; default: break; } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080827/fc750986/attachment-0001.html From source_changes at macosforge.org Thu Aug 28 00:00:05 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Thu, 28 Aug 2008 00:00:05 -0700 (PDT) Subject: [launchd-changes] [23706] trunk/launchd/src/launchd_core_logic.c Message-ID: <20080828070006.B01C928E668@beta.macosforge.org> Revision: 23706 http://trac.macosforge.org/projects/launchd/changeset/23706 Author: dsorresso at apple.com Date: 2008-08-28 00:00:04 -0700 (Thu, 28 Aug 2008) Log Message: ----------- Fix for rdar://problem/6173809. Additional logging for problems with set_service_policy(). Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2008-08-27 22:17:52 UTC (rev 23705) +++ trunk/launchd/src/launchd_core_logic.c 2008-08-28 07:00:04 UTC (rev 23706) @@ -3111,7 +3111,7 @@ } errno = psf(NULL, file2exec, NULL, &spattr, (char *const*)argv, environ); - job_log_error(j, LOG_ERR, "posix_spawn(\"%s\", ...)", j->prog); + job_log_error(j, LOG_ERR, "posix_spawn(\"%s\", ...)", file2exec); out_bad: _exit(EXIT_FAILURE); @@ -7132,6 +7132,8 @@ } if (ldc->euid && (ldc->euid != getuid())) { + char *pidpath = j->prog ? j->prog : ( j->argv[0] ? j->argv[0] : NULL ); + job_log(j, LOG_WARNING, "Returning BOOTSTRAP_NOT_PRIVILEGED to PID %d (%s) with uid = %d, euid = %d", ldc->pid, pidpath, ldc->uid, ldc->euid); return BOOTSTRAP_NOT_PRIVILEGED; } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080828/9bc3ff42/attachment.html From source_changes at macosforge.org Thu Aug 28 12:39:50 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Thu, 28 Aug 2008 12:39:50 -0700 (PDT) Subject: [launchd-changes] [23707] trunk/launchd/src Message-ID: <20080828193950.A472F290A04@beta.macosforge.org> Revision: 23707 http://trac.macosforge.org/projects/launchd/changeset/23707 Author: dsorresso at apple.com Date: 2008-08-28 12:39:50 -0700 (Thu, 28 Aug 2008) Log Message: ----------- Additional logging for rdar://problem/6045086. Minor adjustment to log for rdar://problem/5982485. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c trunk/launchd/src/launchd_runtime.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2008-08-28 07:00:04 UTC (rev 23706) +++ trunk/launchd/src/launchd_core_logic.c 2008-08-28 19:39:50 UTC (rev 23707) @@ -2529,7 +2529,7 @@ } } } else { - job_log(j, LOG_DEBUG, "Tried to dispatch an already active job."); + job_log(j, LOG_DEBUG, "Tried to dispatch an already active job (%s), kickstart = %s.", job_active(j), kickstart ? "YES" : "NO"); } return j; @@ -2703,10 +2703,13 @@ job_callback_timer(job_t j, void *ident) { if (j == ident) { + job_log(j, LOG_DEBUG, "j == ident (%p)", ident); job_dispatch(j, true); } else if (&j->semaphores == ident) { + job_log(j, LOG_DEBUG, "&j->semaphores == ident (%p)", ident); job_dispatch(j, false); } else if (&j->start_interval == ident) { + job_log(j, LOG_DEBUG, "&j->start_interval == ident (%p)", ident); j->start_pending = true; job_dispatch(j, false); } else if (&j->exit_timeout == ident) { @@ -7132,8 +7135,7 @@ } if (ldc->euid && (ldc->euid != getuid())) { - char *pidpath = j->prog ? j->prog : ( j->argv[0] ? j->argv[0] : NULL ); - job_log(j, LOG_WARNING, "Returning BOOTSTRAP_NOT_PRIVILEGED to PID %d (%s) with uid = %d, euid = %d", ldc->pid, pidpath, ldc->uid, ldc->euid); + job_log(j, LOG_ERR, "Denied Mach service policy update against PID %u due to mismatched credentials: UID/EUID %u/%u", target_pid, ldc->uid, ldc->euid); return BOOTSTRAP_NOT_PRIVILEGED; } Modified: trunk/launchd/src/launchd_runtime.c =================================================================== --- trunk/launchd/src/launchd_runtime.c 2008-08-28 07:00:04 UTC (rev 23706) +++ trunk/launchd/src/launchd_runtime.c 2008-08-28 19:39:50 UTC (rev 23707) @@ -632,7 +632,7 @@ runtime_ktrace0(RTKT_LAUNCHD_BSD_KEVENT|DBG_FUNC_END); #if 1 } else { - log_kevent_struct(LOG_EMERG, kevi, 0); + log_kevent_struct(LOG_EMERG, kevi, i); } #endif } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080828/9ea350c4/attachment.html From source_changes at macosforge.org Fri Aug 29 16:23:54 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Fri, 29 Aug 2008 16:23:54 -0700 (PDT) Subject: [launchd-changes] [23708] trunk/launchd/src Message-ID: <20080829232354.DA1592D9565@beta.macosforge.org> Revision: 23708 http://trac.macosforge.org/projects/launchd/changeset/23708 Author: dsorresso at apple.com Date: 2008-08-29 16:23:53 -0700 (Fri, 29 Aug 2008) Log Message: ----------- Fixes for rdar://problem/6153301 and rdar://problem/5553797. Minor tweaks to the job_mig_set_service_policy() logging. Added a kqueue timer for shutdown to log jobs still active. Modified Paths: -------------- trunk/launchd/src/launchd.c trunk/launchd/src/launchd_core_logic.c trunk/launchd/src/launchd_mig_types.defs trunk/launchd/src/libbootstrap.c trunk/launchd/src/libbootstrap_private.h trunk/launchd/src/libbootstrap_public.h Modified: trunk/launchd/src/launchd.c =================================================================== --- trunk/launchd/src/launchd.c 2008-08-28 19:39:50 UTC (rev 23707) +++ trunk/launchd/src/launchd.c 2008-08-29 23:23:53 UTC (rev 23708) @@ -67,6 +67,7 @@ #include #include #include +#include #include "libbootstrap_public.h" #include "libvproc_public.h" @@ -96,9 +97,12 @@ static void fatal_signal_handler(int sig, siginfo_t *si, void *uap); static void handle_pid1_crashes_separately(void); +static void *update_thread(void *nothing); + static bool re_exec_in_single_user_mode; static void *crash_addr; static pid_t crash_pid; +static unsigned int g_sync_frequency = 30; bool shutdown_in_progress; bool fake_shutdown_in_progress; @@ -165,6 +169,13 @@ _vproc_transaction_end(); } + if( pid1_magic ) { + /* Start the update thread -- rdar://problem/5039559&6153301 */ + pthread_t t = NULL; + int err = pthread_create(&t, NULL, update_thread, NULL); + launchd_assumes(err == 0); + } + jobmgr_init(sflag); launchd_runtime_init2(); @@ -187,6 +198,16 @@ launchd_assumes(sigaction(SIGSEGV, &fsa, NULL) != -1); } +void *update_thread(void *nothing __attribute__((unused))) +{ + while( g_sync_frequency ) { + sync(); + sleep(g_sync_frequency); + } + + return NULL; +} + #define PID1_CRASH_LOGFILE "/var/log/launchd-pid1.crash" /* This hack forces the dynamic linker to resolve these symbols ASAP */ Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2008-08-28 19:39:50 UTC (rev 23707) +++ trunk/launchd/src/launchd_core_logic.c 2008-08-29 23:23:53 UTC (rev 23708) @@ -855,7 +855,9 @@ } if (do_apple_internal_logging && jm->parentmgr == NULL && pid1_magic) { - runtime_set_timeout(still_alive_with_check, 5); + if( pid1_magic ) { + jobmgr_assumes(jm, kevent_mod((uintptr_t)jm, EVFILT_TIMER, EV_ADD, NOTE_SECONDS, 5, jm)); + } } return jobmgr_do_garbage_collection(jm); @@ -2794,7 +2796,7 @@ break; case EVFILT_SIGNAL: switch (kev->ident) { - case SIGTERM: + case SIGTERM: return launchd_shutdown(); case SIGUSR1: return calendarinterval_callback(); @@ -2832,6 +2834,9 @@ case EVFILT_TIMER: if (jobmgr_assumes(jm, kev->ident == (uintptr_t)&sorted_calendar_events)) { calendarinterval_callback(); + } else if( kev->ident == (uintptr_t)jm ) { + jobmgr_log(jm, LOG_DEBUG, "Shutdown timer firing."); + still_alive_with_check(); } break; default: @@ -7134,8 +7139,18 @@ return BOOTSTRAP_NO_MEMORY; } - if (ldc->euid && (ldc->euid != getuid())) { - job_log(j, LOG_ERR, "Denied Mach service policy update against PID %u due to mismatched credentials: UID/EUID %u/%u", target_pid, ldc->uid, ldc->euid); + if (ldc->euid && (ldc->euid != getuid())) { + int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, target_pid }; + struct kinfo_proc kp; + size_t len = sizeof(kp); + + job_assumes(j, sysctl(mib, 4, &kp, &len, NULL, 0) != -1); + + uid_t kp_euid = kp.kp_eproc.e_ucred.cr_uid; + uid_t kp_uid = kp.kp_eproc.e_pcred.p_ruid; + + job_log(j, LOG_ERR, "Denied Mach service policy update requested by UID/EUID %u/%u against PID %u with UID/EUID %u/%u due to mismatched credentials.", ldc->uid, ldc->euid, target_pid, kp_uid, kp_euid); + return BOOTSTRAP_NOT_PRIVILEGED; } Modified: trunk/launchd/src/launchd_mig_types.defs =================================================================== --- trunk/launchd/src/launchd_mig_types.defs 2008-08-28 19:39:50 UTC (rev 23707) +++ trunk/launchd/src/launchd_mig_types.defs 2008-08-29 23:23:53 UTC (rev 23708) @@ -23,16 +23,16 @@ * Copyright, 1990. All rights reserved. */ -type pid_t = integer_t; -type pid_array_t = ^array [] of pid_t; -type uid_t = integer_t; -type gid_t = integer_t; -type vproc_gsk_t = integer_t; -type logmsg_t = c_string[*:2048]; -type cmd_t = c_string[512]; -type name_t = c_string[128]; -type name_array_t = ^array [] of name_t; -type bootstrap_status_t = integer_t; +type pid_t = integer_t; +type pid_array_t = ^array [] of pid_t; +type uid_t = integer_t; +type gid_t = integer_t; +type vproc_gsk_t = integer_t; +type logmsg_t = c_string[*:2048]; +type cmd_t = c_string[512]; +type name_t = c_string[128]; +type name_array_t = ^array [] of name_t; +type bootstrap_status_t = integer_t; type bootstrap_status_array_t = ^array [] of bootstrap_status_t; type job_t = mach_port_t Modified: trunk/launchd/src/libbootstrap.c =================================================================== --- trunk/launchd/src/libbootstrap.c 2008-08-28 19:39:50 UTC (rev 23707) +++ trunk/launchd/src/libbootstrap.c 2008-08-29 23:23:53 UTC (rev 23708) @@ -127,19 +127,19 @@ } kern_return_t -bootstrap_check_in(mach_port_t bp, name_t service_name, mach_port_t *sp) +bootstrap_check_in(mach_port_t bp, const name_t service_name, mach_port_t *sp) { - return vproc_mig_check_in2(bp, service_name, sp, 0); + return vproc_mig_check_in2(bp, (char *)service_name, sp, 0); } kern_return_t -bootstrap_check_in2(mach_port_t bp, name_t service_name, mach_port_t *sp, uint64_t flags) +bootstrap_check_in2(mach_port_t bp, const name_t service_name, mach_port_t *sp, uint64_t flags) { - return vproc_mig_check_in2(bp, service_name, sp, flags); + return vproc_mig_check_in2(bp, (char *)service_name, sp, flags); } kern_return_t -bootstrap_look_up_per_user(mach_port_t bp, name_t service_name, uid_t target_user, mach_port_t *sp) +bootstrap_look_up_per_user(mach_port_t bp, const name_t service_name, uid_t target_user, mach_port_t *sp) { audit_token_t au_tok; struct stat sb; @@ -154,7 +154,7 @@ return kr; } - kr = vproc_mig_look_up2(puc, service_name, sp, &au_tok, 0, 0); + kr = vproc_mig_look_up2(puc, (char *)service_name, sp, &au_tok, 0, 0); mach_port_deallocate(mach_task_self(), puc); return kr; @@ -162,13 +162,13 @@ kern_return_t -bootstrap_look_up(mach_port_t bp, name_t service_name, mach_port_t *sp) +bootstrap_look_up(mach_port_t bp, const name_t service_name, mach_port_t *sp) { return bootstrap_look_up2(bp, service_name, sp, 0, 0); } kern_return_t -bootstrap_look_up2(mach_port_t bp, name_t service_name, mach_port_t *sp, pid_t target_pid, uint64_t flags) +bootstrap_look_up2(mach_port_t bp, const name_t service_name, mach_port_t *sp, pid_t target_pid, uint64_t flags) { static pthread_mutex_t bslu2_lock = PTHREAD_MUTEX_INITIALIZER; static mach_port_t prev_bp; @@ -197,7 +197,7 @@ } skip_cache: - if ((kr = vproc_mig_look_up2(bp, service_name, sp, &au_tok, target_pid, flags)) != VPROC_ERR_TRY_PER_USER) { + if ((kr = vproc_mig_look_up2(bp, (char *)service_name, sp, &au_tok, target_pid, flags)) != VPROC_ERR_TRY_PER_USER) { goto out; } @@ -205,7 +205,7 @@ goto out; } - kr = vproc_mig_look_up2(puc, service_name, sp, &au_tok, target_pid, flags); + kr = vproc_mig_look_up2(puc, (char *)service_name, sp, &au_tok, target_pid, flags); mach_port_deallocate(mach_task_self(), puc); out: Modified: trunk/launchd/src/libbootstrap_private.h =================================================================== --- trunk/launchd/src/libbootstrap_private.h 2008-08-28 19:39:50 UTC (rev 23707) +++ trunk/launchd/src/libbootstrap_private.h 2008-08-29 23:23:53 UTC (rev 23708) @@ -34,11 +34,11 @@ kern_return_t bootstrap_register2(mach_port_t bp, name_t service_name, mach_port_t sp, uint64_t flags); -kern_return_t bootstrap_look_up2(mach_port_t bp, name_t service_name, mach_port_t *sp, pid_t target_pid, uint64_t flags); +kern_return_t bootstrap_look_up2(mach_port_t bp, const name_t service_name, mach_port_t *sp, pid_t target_pid, uint64_t flags); -kern_return_t bootstrap_check_in2(mach_port_t bp, name_t service_name, mach_port_t *sp, uint64_t flags); +kern_return_t bootstrap_check_in2(mach_port_t bp, const name_t service_name, mach_port_t *sp, uint64_t flags); -kern_return_t bootstrap_look_up_per_user(mach_port_t bp, name_t service_name, uid_t target_user, mach_port_t *sp); +kern_return_t bootstrap_look_up_per_user(mach_port_t bp, const name_t service_name, uid_t target_user, mach_port_t *sp); kern_return_t bootstrap_set_policy(mach_port_t bp, pid_t target_pid, uint64_t flags, const char *target_service); Modified: trunk/launchd/src/libbootstrap_public.h =================================================================== --- trunk/launchd/src/libbootstrap_public.h 2008-08-28 19:39:50 UTC (rev 23707) +++ trunk/launchd/src/libbootstrap_public.h 2008-08-29 23:23:53 UTC (rev 23708) @@ -306,7 +306,7 @@ */ kern_return_t bootstrap_check_in( mach_port_t bp, - name_t service_name, + const name_t service_name, mach_port_t *sp); /* @@ -321,7 +321,7 @@ */ kern_return_t bootstrap_look_up( mach_port_t bp, - name_t service_name, + const name_t service_name, mach_port_t *sp); /* -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080829/c619bc5b/attachment.html From source_changes at macosforge.org Fri Aug 29 17:01:50 2008 From: source_changes at macosforge.org (source_changes at macosforge.org) Date: Fri, 29 Aug 2008 17:01:50 -0700 (PDT) Subject: [launchd-changes] [23709] trunk/launchd/src/launchctl.c Message-ID: <20080830000150.6291F2D96E1@beta.macosforge.org> Revision: 23709 http://trac.macosforge.org/projects/launchd/changeset/23709 Author: dsorresso at apple.com Date: 2008-08-29 17:01:50 -0700 (Fri, 29 Aug 2008) Log Message: ----------- Fix for rdar://problem/5984126. Modified Paths: -------------- trunk/launchd/src/launchctl.c Modified: trunk/launchd/src/launchctl.c =================================================================== --- trunk/launchd/src/launchctl.c 2008-08-29 23:23:53 UTC (rev 23708) +++ trunk/launchd/src/launchctl.c 2008-08-30 00:01:50 UTC (rev 23709) @@ -1415,11 +1415,6 @@ loopback_setup_ipv4(); loopback_setup_ipv6(); - if (path_check("/etc/rc.server")) { - const char *rcserver_tool[] = { _PATH_BSHELL, "/etc/rc.server", NULL }; - assumes(fwexec(rcserver_tool, NULL) != -1); - } - apply_sysctls_from_file("/etc/sysctl.conf"); if (path_check("/etc/rc.cdrom")) { @@ -1437,6 +1432,11 @@ do_potential_fsck(); } + if (path_check("/etc/rc.server")) { + const char *rcserver_tool[] = { _PATH_BSHELL, "/etc/rc.server", NULL }; + assumes(fwexec(rcserver_tool, NULL) != -1); + } + read_launchd_conf(); if (path_check("/var/account/acct")) { -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080829/e6ac2d4f/attachment-0001.html