Changeset 23131
- Timestamp:
- 03/04/07 15:59:52 (21 months ago)
- Location:
- trunk/launchd/src
- Files:
-
- 4 modified
-
liblaunch.c (modified) (4 diffs)
-
libvproc.c (modified) (2 diffs)
-
libvproc_internal.h (modified) (1 diff)
-
libvproc_private.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/launchd/src/liblaunch.c
r23130 r23131 41 41 #include "libbootstrap_public.h" 42 42 #include "libvproc_public.h" 43 #include "libvproc_private.h" 43 44 #include "libvproc_internal.h" 44 45 … … 1164 1165 load_launchd_jobs_at_loginwindow_prompt(int flags __attribute__((unused)), ...) 1165 1166 { 1166 _vproc _move_subset_to_user("LoginWindow");1167 _vprocmgr_move_subset_to_user(geteuid() ? geteuid() : getuid(), "LoginWindow"); 1167 1168 } 1168 1169 … … 1172 1173 mach_port_t bezel_ui_server; 1173 1174 struct stat sb; 1174 1175 if (_vproc_move_subset_to_user("Aqua")) { 1175 uid_t target_user = geteuid() ? geteuid() : getuid(); 1176 1177 if (_vprocmgr_move_subset_to_user(target_user, "Aqua")) { 1176 1178 return -1; 1177 1179 } … … 1182 1184 1183 1185 if (!(stat(BEZEL_UI_PLIST, &sb) == 0 && S_ISREG(sb.st_mode))) { 1184 if (bootstrap_create_server(bootstrap_port, BEZEL_UI_PATH, 0, true, &bezel_ui_server) == BOOTSTRAP_SUCCESS) {1186 if (bootstrap_create_server(bootstrap_port, BEZEL_UI_PATH, target_user, true, &bezel_ui_server) == BOOTSTRAP_SUCCESS) { 1185 1187 mach_port_t srv; 1186 1188 -
trunk/launchd/src/libvproc.c
r23130 r23131 48 48 49 49 vproc_err_t 50 _vproc _move_subset_to_user(char *session_type)50 _vprocmgr_move_subset_to_user(uid_t target_user, char *session_type) 51 51 { 52 52 kern_return_t kr = 1; 53 53 mach_port_t puc = 0, which_port = bootstrap_port; 54 54 55 if ( (getuid() || geteuid()) && vproc_mig_lookup_per_user_context(bootstrap_port, 0, &puc) == 0) {55 if (target_user && vproc_mig_lookup_per_user_context(bootstrap_port, target_user, &puc) == 0) { 56 56 which_port = puc; 57 57 } … … 63 63 } 64 64 65 return kr == 0 ? NULL : (vproc_err_t)_vproc _move_subset_to_user;65 return kr == 0 ? NULL : (vproc_err_t)_vprocmgr_move_subset_to_user; 66 66 } 67 67 -
trunk/launchd/src/libvproc_internal.h
r23130 r23131 58 58 kern_return_t _vprocmgr_getsocket(name_t); 59 59 60 vproc_err_t _vproc_move_subset_to_user(char *session_type);61 62 60 void _vproc_logv(int pri, int err, const char *msg, va_list ap); 63 61 -
trunk/launchd/src/libvproc_private.h
r22932 r23131 21 21 */ 22 22 23 #include <sys/types.h> 23 24 #include <sys/cdefs.h> 24 25 #include <sys/syslog.h> … … 35 36 void _vproc_log_error(int pri, const char *msg, ...) __attribute__((format(printf, 2, 3))); 36 37 38 vproc_err_t _vprocmgr_move_subset_to_user(uid_t target_user, char *session_type); 39 37 40 #pragma GCC visibility pop 38 41

