2008-07-14 Samuel Thibault * perms-access.c (fshelp_access): If user->uids contain 0 and the op is S_IEXEC, return 1 only if st_mode contains at least one executable bit. 2008-06-27 Flávio Cruz * perms-iscontroller.c (fshelp_iscontroller): Replace duplicate check for st->ts_uid in user->uids by check for 0 in user->uids. 2007-11-13 Thomas Schwinge * touch.c (fshelp_touch): Adapt to ``struct stat'' changes. 2006-06-28 Thomas Schwinge * Makefile (HURDLIBS): Add `iohelp' and `ports'. 2004-02-10 Roland McGrath * start-translator-long.c (service_fsys_startup): Move mach_msg_type_t const variables inside the function, make them auto so they are optimized away to integer constants. Use a union instead of casts to do efficient type checking. 2002-06-26 Marcus Brinkmann * lock-acquire.c (fshelp_acquire_lock): Also wait for exclusive locks which might have been acquired while we were waiting for shared locks to finish. 2002-06-07 Roland McGrath * fshelp.h: Use io_statbuf_t in place of struct stat throughout. (fshelp_get_identity): ino_t -> ino64_t 2002-05-10 Roland McGrath * exec-reauth.c (fshelp_exec_reauth): Always set *SECURE if nonnull, as the comment says we do. 2002-05-07 Roland McGrath * fetch-root.c (fshelp_fetch_root): int -> size_t * delegate.c (fshelp_delegate_translation): Likewise. 2002-03-05 Marcus Brinkmann * fshelp.h: Refer to dir_lookup, not dir_pathtrans, in comment. Reported by James A Morrison . 2002-01-02 Roland McGrath * start-translator-long.c (fshelp_start_translator_long) [KERN_INVALID_LEDGER]: Pass extra args to task_create for OSF variant. 2001-06-21 Neal H Walfield * fshelp.h (fshelp_iscontroller): Declare new function. * perms-iscontroller.c: New file. * Makefile (SRCS): Add it. 2001-01-17 Neal H Walfield * fshelp.h: Add two new parameters to fshelp_open_fn_t: a port to the new task and a cookie. Add a new parameter, cookie, to fshelp_start_translator and fshelp_start_translator_long that will be passed to fshelp_open_fn_t. * fetch-root.c (fshelp_fetch_root): Conform to new fshelp_start_translator_long semantics. * start-translator-long.c (service_fsys_startup): Likewise. (fshelp_start_translator_long): Likewise. * start-translator.c (fshelp_start_translator): Likewise. 2000-03-20 Roland McGrath * delegate.c (fshelp_delegate_translation): Add const to arg type. * fshelp.h: Fix decl. 2000-03-17 Thomas Bushnell, BSG * fetch-root.c (fshelp_fetch_root): Don't use MAKE_SEND in Hurd RPC. 2000-03-13 Roland McGrath * start-translator-long.c (service_fsys_startup): If mach_msg fails with MACH_SEND_INTERRUPTED, clean up the send right in the pseudo-received request message. 1999-10-07 Thomas Bushnell, BSG * start-translator-long.c (fshelp_start_translator_long): Doc fix. * fshelp.h (fshelp_start_translator_long): Document OWNER_UID. 1999-10-07 Roland McGrath * start-translator-long.c (fshelp_start_translator_long): Take new argument OWNER_UID. Get child's proc port and do proc_setowner on it. * fshelp.h: Update decl. * start-translator.c (fshelp_start_translator): Pass new arg to fshelp_start_translator_long with value from geteuid (). * fetch-root.c (fshelp_fetch_root): Pass UID as new arg to fshelp_start_translator_long. 1999-09-12 Roland McGrath * delegate.c (fshelp_delegate_translation): Free ARGZ after RPC. 1999-07-11 Thomas Bushnell, BSG * set-options.c (fshelp_set_options): Explicitly cast first arg to argz_extract to keep GCC quiet. 1999-07-01 Thomas Bushnell, BSG * translated.c: New file; guts from fshelp.h. * perms-isowner.c: Likewise. * perms-access.c: Likewise. * prems-checkdirmod.c: Likewise. * touch.c: Likewise. * fshelp.h (fshelp_translated, fshelp_isowner, fshelp_access, fshelp_checkdirmod, fshelp_touch): Replace inline definitions with ordinary declarations. (FSHELP_EI): Removed macro. * fshelp.c: Deleted file. * Makefile (SRCS): Added translated.c, perms-isowner.c, perms-access.c, perms-checkdirmod.c, touch.c. Removed fshelp.c. Wed Apr 28 03:06:19 1999 Thomas Bushnell, BSG * fetch-root.c (fshelp_fetch_root): Don't deallocate the INIT_PORT_CWDIR after starting the passive translator; we still need to keep our reference around until the getroot call happens. Reported by Marcus Brinkmann (Marcus.Brinkmann@ruhr-uni-bochum.de). Tue Apr 20 21:43:20 1999 Thomas Bushnell, BSG * fetch-root.c (fshelp_fetch_root): When starting a passive translator, set cwd to be DOTDOT instead of our own cwd. Sat Mar 6 17:03:02 1999 Thomas Bushnell, BSG * start-translator-long.c (service_fsys_startup): Doc fixes, and omit unused member `dead' from REQUEST. 1999-02-28 Roland McGrath * get-identity.c (fshelp_get_identity): Use ports_class_iterate. 1998-12-19 Roland McGrath * fetch-root.c (fshelp_fetch_root): Cope when we have a null auth server port (pass our own ports). 1998-09-04 Roland McGrath * fshelp.h (fshelp_set_options): Use `const' for `char *' parameter. * set-options.c (fshelp_set_options): Fix defn. 1998-08-21 Roland McGrath * Makefile (SRCS): Remove return-buffer.c. 1998-08-20 Roland McGrath * fshelp.h: Moved fshelp_return_malloced_buffer to libiohelp. * return-buffer.c: Moved to ../libiohelp/return-buffer.c. (fshelp_return_malloced_buffer): Renamed to iohelp_*. Tue Jul 1 16:45:27 1997 Thomas Bushnell, n/BSG * exec-reauth.c (fshelp_exec_reauth): If the new set of eff_uids is empty, then still do proc_setowner, but this time to set it to "unowned" status. 1997-06-12 Miles Bader * fshelp.h (fshelp_touch): New function. (TOUCH_ATIME, TOUCH_MTIME, TOUCH_CTIME): New macros. Include . 1997-06-11 Miles Bader * fshelp.h (fshelp_fetch_root_callback1_t): Chage ARGZ_LEN to type size_t. Fri Nov 15 14:43:44 1996 Thomas Bushnell, n/BSG * fshelp.h (fshelp_access): Uh, shift bits the right direction. Tue Nov 12 22:07:41 1996 Thomas Bushnell, n/BSG * fetch-root.c (fshelp_fetch_root): Name idvec members correctly. * fshelp.h: -> . Include . (fshelp_access): Declare `gotit'. Wed Nov 6 17:49:33 1996 Thomas Bushnell, n/BSG * fshelp.h (fshelp_fetch_root): Delete args `uids', `gids', `uids_len', and `gids_len'. New arg `user'. * fetch-root.c (fshelp_fetch_root): Ditto. * fshelp.h: Include . (fshelp_access, fshelp_isowner, fshelp_checkdirmod): New functions. Mon Oct 21 21:55:21 1996 Thomas Bushnell, n/BSG * fshelp.h: Add extern inline protection. * fshelp.c: New file. * Makefile (SRCS): Add fshelp.c. Sun Oct 13 21:46:18 1996 Miles Bader * lock-acquire.c (fshelp_acquire_lock): Return success, not EBADF, when unlocking a file which we don't have locked; this is netbsd's behavior. Thu Oct 10 17:12:19 1996 Thomas Bushnell, n/BSG * lock-acquire.c (fshelp_acquire_lock): Use hurd_condition_wait so we are properly interruptible. Thu Sep 12 16:21:51 1996 Thomas Bushnell, n/BSG * Makefile (HURDLIBS): New variable. (libfshelp.so): Delete special dependency. Tue Jul 16 11:30:42 1996 Michael I. Bushnell, p/BSG * lock-acquire.c (EWOULDBLOCK): Define, to work around new libc bug. Sun Jul 7 21:26:02 1996 Michael I. Bushnell, p/BSG * start-translator.c (fshelp_start_translator): Don't use unsafe MOVE_SEND in call to fshelp_start_translator_long. * fetch-root.c (fshelp_fetch_root): Don't use unsafe MOVE_SEND in call to fshelp_start_translator_long. Thu Jul 4 15:38:36 1996 Michael I. Bushnell, p/BSG * get-identity.c (fshelp_get_identity): Bother to initialize I->fileno. Wed Jul 3 11:29:49 1996 Michael I. Bushnell, p/BSG * get-identity.c: New file. * fshelp.h (struct port_bucket): Mention name in global scope. (fshelp_get_identity): New declaration. * Makefile (SRCS): Add get-identity.c. Thu Jun 27 17:56:44 1996 Michael I. Bushnell, p/BSG * Makefile (LCLHDRS): Add trans.h. Mon Jun 24 16:00:48 1996 Michael I. Bushnell, p/BSG * fetch-root.c (fshelp_fetch_root): Deal properly with errors from auth_makeauth. Fri Jun 21 00:07:26 1996 Miles Bader * set-options.c (fshelp_set_options): Add & use INPUT arg. * fshelp.h (fshelp_set_options): Add INPUT argument. (fshelp_return_malloced_buffer): New declaration. * return-buffer.c: New file. * Makefile (SRCS): Add return-buffer.c. Wed Jun 19 18:50:01 1996 Miles Bader * set-options.c: New file. * fshelp.h: Add fshelp_set_options. * Makefile (SRCS): Add set-options.c. Fri May 10 16:12:50 1996 Miles Bader * delegate.c (fshelp_delegate_translation): Don't cast ARGV when calling arg_create. Thu May 9 11:17:08 1996 Michael I. Bushnell, p/BSG * exec-reauth.c (fshelp_exec_reauth): Provide new third arg to proc_setowner. * delegate.c (fshelp_delegate_translation): Cast first arg to argz_create appropriately. * fetch-root.c (fshelp_fetch_root) [reauth]: Use new args for auth_user_authenticate. Fri Apr 26 18:51:07 1996 Miles Bader * start-translator-long.c (service_fsys_startup): Make mach_msg calls interruptible. Wed Feb 21 17:09:12 1996 Miles Bader * set-active.c (fshelp_set_active): When EXCL, make sure the active translator is really active. * fetch-root.c (fshelp_fetch_root): Make sure the returned fsys control port is valid. Wed Feb 14 16:42:31 1996 Miles Bader * start-translator-long.c (fshelp_start_translator_long): Terminate TASK if the exec fails. Mon Jan 29 15:32:54 1996 Michael I. Bushnell, p/BSG * fetch-root.c (fshelp_fetch_root): Use hurd_condition_wait instead of condition_wait. * set-active.c (fshelp_set_active): Deal correctly with the case where a passive translator is being started. Fri Jan 26 17:56:08 1996 Miles Bader * fetch-root.c (fshelp_fetch_root): If io_reauthenticate returns an error, just return MACH_PORT_NULL instead of aborting (the server probably died; not a good sign for the health of the translator, but it's better than dying ourselves...). Tue Jan 2 15:36:28 1996 Miles Bader * exec-reauth.c (fshelp_exec_reauth): Don't setgid the uids. Mon Jan 1 17:13:25 1996 Miles Bader * exec-reauth.c (fshelp_exec_reauth): New function. * fshelp.h (fshelp_exec_reauth): New declaration. * Makefile (SRCS): Added exec-reauth.c Mon Nov 6 13:37:52 1995 Miles Bader * start-translator-long.c (service_fsys_startup): Don't pass the address of reply.realnodeType.msgt_name -- it's not really an int, although the compiler pretends it is. * fetch-root.c (fshelp_fetch_root): When PORT_TYPE is MACH_MSG_TYPE_MAKE_SEND, make the right *before* using it. (fshelp_fetch_root): Don't bother reauthenticating the underlying node returned by CALLBACK2 -- it already has the right ids. This also gets rid of a problem with giving away our auth port prematurely. Wed Nov 1 16:14:08 1995 Miles Bader * fetch-root.c (fshelp_fetch_root): Uses two callbacks now. Pass an appropiate function to fshelp_start_translator_long instead of the actual underlying node. * fshelp.h (fshelp_fetch_root_callback1_t, fshelp_fetch_root_callback2_t): New types replacing fshelp_callback_t. (fshelp_fetch_root): Takes two callback args now. * start-translator.c (fshelp_start_translator): Change to use a callback function instead of passing the actual node. * start-translator-long.c (fshelp_start_translator_long, service_fsys_startup): Ditto. (service_fsys_startup): Support the open flags coming from the translator. (struct fsys_startup_request): Add the flags field. (flagsCheck): New variable. * fshelp.h (fshelp_open_fn_t): New type. (fshelp_start_translator, fshelp_start_translator_long): Now take a function that opens the underlying node instead of the node itself. Fri Oct 13 16:52:43 1995 Miles Bader * start-translator-long.c (fshelp_start_translator_long): Undo last change to file_exec args. Sat Oct 7 20:20:26 1995 Miles Bader * start-translator-long.c (fshelp_start_translator_long): Add values for the dealloc parameters to file_exec (all false). Give away our send right to TASK when we do file_exec. Initialize BOOTSTRAP & TASK so the cleanup code doesn't get confused. Fri Sep 29 17:44:00 1995 Miles Bader * transbox-init.c (fshelp_transbox_init): Initialize the flags field. Tue Sep 5 18:25:24 1995 Miles Bader * fshelp.h (fshelp_delegate_translation): New declaration. * delegate.c (fshelp_delegate_translation): New file, new function. Fri Sep 1 12:01:06 1995 Miles Bader * Makefile (SRCS): Add delegate.c. (REMHDRS): Removed. Tue Jul 11 14:11:24 1995 Michael I Bushnell * start-translator-long.c (fshelp_start_translator_long): If PORTS_TYPE is MACH_MSG_TYPE_COPY_SEND, then drop our right on bootstrap after the call, because we are pretending we haven't changed the calling user's state. For the same reason, save the old BOOTSTRAP port value, and restore it after the call. Thu Jul 6 15:35:23 1995 Michael I Bushnell * Makefile: Removed dependencies that are now automatically generated. Mon Jun 26 15:36:21 1995 Michael I Bushnell * fetch-root.c (fshelp_fetch_root): Wakeup other blocked calls *before* returning errors provided by fshelp_start_translator_long or CALLBACK. Fri Jun 23 14:25:52 1995 Michael I Bushnell * fetch-root.c (fshelp_fetch_root): Parenthesize assert test correctly. * start-translator-long.c (service_fsys_startup): Parenthesize construction of flags arg correctly. Thu Jun 22 17:06:51 1995 Michael I Bushnell * fetch-root.c (fshelp_fetch_root) [reauth]: If PORT is null, then just return it. * fetch-root.c (fshelp_fetch_root): Pass type and length parameters in the right order in calls to auth_makeauth and fshelp_start_translator_long. Wed Jun 21 13:19:44 1995 Michael I Bushnell * fetch-root.c (fshelp_fetch_root): Pass new third arg to fshelp_set_active. Mon Jun 19 16:41:51 1995 Michael I Bushnell * fetch-control.c (fshelp_fetch_control): Only frob refs if control is non-null. * fshelp.h (fshelp_set_active): New parm EXCL. * set-active.c (fshelp_set_active): Implement new interface. * fetch-control.c (fshelp_fetch_control): Don't frob obsolete innerlock. * transbox-init.c (fshelp_transbox_init): Don't init obsolete innerlock. Do init TRANSBOX->wakeup. * set-active.c (fshelp_set_active): Don't frob obsolete innerlock. * fetch-root.c (fshelp_fetch_root): Reduce levels of loops. Only change ACTIVE when we are holding the lock. Use condition mechanism to serialize attempts to start the passive translator. * fshelp.h (struct transbox): Delete member `innerlock'. Add members `flags' and `wakeup'; and define values for flags. Wed Jun 14 13:06:17 1995 Michael I Bushnell * fshelp.h (fshelp_fetch_root): New arg COOKIE. (fshelp_callback_t): COOKIE->COOKIE1. New arg COOKIE2. * fetch-root.c (fshelp_fetch_root): Take new arg COOKIE and pass it to CALLBACK. Free ARGZ after we're done with them. Never consume the right on DOTDOT. * Makefile (LCLHDRS): Removed trans.h. * handle-startup.c, init-trans.c, start-trans.c, transboot-clean.c, kill-trans.c, trans-iter.c, trans-cntl.c, trans-drop.c, trans.h: Deleted files. * Makefile (SRCS): Remove translated.c. * fshelp.h (fshelp_fetch_root): Don't actually need ROOT_TYPE. UIDS and GIDS should be arrays. (fshelp_callback_t): Should be error_t. Tue Jun 13 15:59:08 1995 Michael I Bushnell Brand new translator support routines * fshelp.h: Deleted `struct translink', fshelp_transboot_port_type, fshelp_init_trans_link, fshelp_set_control, fshelp_start_translator, fshelp_handle_fsys_startup, fshelp_transboot_clean, fshelp_translator_iterate, fshelp_translator_drop, fshelp_kill_translator. * fshelp.h: Added fshelp_start_translator_long, fshelp_start_translator, `struct transbox', fshelp_fetch_root, fshelp_transbox_init, fshelp_callback_t, fshelp_translated, fshelp_set_active, fshelp_fetch_control, fshelp_drop_transbox. * Makefile (SRCS): Removed handle-startup.c, init-trans.c, start-trans.c, transboot-clean.c, kill-trans.c, trans-iter.c, trans-cntl.c, trans-drop.c. Added start-translator-long.c, start-translator.c, fetch-root.c, transbox-init.c, translated.c, set-active.c, fetch-control.c, and drop-transbox.c. (OBJS): Replaced with computation from $(SRCS). * start-translator.c, fetch-root.c, transbox-init.c, set-active.c, fetch-control.c, drop-transbox.c: New files. * start-translator-long.c: Adapted from ../lib/start-trans.c. Include "fshelp.h" and . (service_fsys_startup): Declare static. Only pass MACH_RCV_TIMEOUT if TIMEOUT is nonzero. New parm `node_type'. (fshelp_start_translator_long): Renamed from start_translator. Lookup up executable at NAME instead of ARGZ. Delete vars INIT_PORTS, FD_PORTS, INIT_INTS, I, and CHILD_PROC. Don't set any of the ports, fds, or ints, with the exception of the bootstrap port. Don't bother getting the child's proc server port. Don't use __USEPORT. If we fail before calling file_exec, then deallocate the ports ourselves, if they were MOVE_SEND. Fri Oct 28 18:37:56 1994 Roland McGrath * start-trans.c: Change `assert (!err)' to `assert_perror (err)' throughout. (fshelp_start_translator): Add assert_perror for io_reauthenticate return. Mon Sep 19 20:58:35 1994 Michael I Bushnell * trans-iter.c (fshelp_translator_iterate): Bother to attach ITEM onto LIST as it's constructed. Sat Sep 10 08:42:00 1994 Roland McGrath * transboot-clean.c (fshelp_transboot_clean): Use EDIED, not EINVAL. Wed Sep 7 10:34:13 1994 Michael I Bushnell * start-trans.c (fshelp_start_translator): RETRY label belongs *after* initial lock of LINK. Unlock LINK before returning. Tue Sep 6 14:52:49 1994 Michael I Bushnell * fshelp.h (struct trans_link): New member `lock'. (fshelp_start_translator): Omit `lock' arg. * trans.h (struct transboot): Omit member `lock'. * init-trans.c (fshelp_init_trans_link): Initialize LINK->lock. * start-trans.c (fshelp_start_translator): Don't set TB->lock. Omit `lock' arg; use LINK->lock instead. (fshelp_start_translator): Don't deallocate DIR. * handle-startup.c (fshelp_handle_fsys_startup): Lock TB->link->lock instead of TB->lock. * transboot-clean.c (fshelp_transboot_clean): Likewise. Thu Sep 1 16:46:53 1994 Michael I Bushnell * fshelp.h (fshelp_start_translator): Doc fix. * start-trans.c (fshelp_start_translator): Don't reauthenticate NODE argument; expect fully authenticated node. Wed Aug 31 14:28:25 1994 Michael I Bushnell * start-trans.c (fshelp_start_translator): Before call to proc_reauthenticate, CALL mach_reply_port, not just refer to confusing CPP macro. * start-trans.c (fshelp_start_translator): Call proc_setowner for new process. Tue Aug 30 16:19:45 1994 Michael I Bushnell * start-trans.c: Include . * start-trans.c (fshelp_start_translator): Use new reauthentication protocol throughout. * start-trans.c (fshelp_start_translator): Use hurd_file_name_lookup instead of hurd_path_lookup. Wed Aug 17 16:03:49 1994 Michael I Bushnell * start-trans.c (fshelp_start_translator): Designate the new process as our child; then make sure it's under its own authentication. As long as we've gotten the proc port for this operation, might as well pass it too. (fshelp_start_translator): Zero init ints and init ports. * transboot-clean.c (fshelp_transboot_clean): Only set an error if we haven't gotten fsys_startup yet. Mon Aug 15 12:24:47 1994 Michael I Bushnell * start-trans.c (fshelp_start_translator): Set LINK->starting before blocking. * handle-startup.c (fshelp_handle_fsys_startup): Clear LINK->starting before waking up blocks. * fshelp.h (struct trans_link): New member `error'. * transboot-clean.c (fshelp_transboot_clean): Wakeup blocked users with error. * trans-cntl.c (fshelp_set_control): Clear LINK->error. * init-trans.c (fshelp_init_trans_link): Likewise. * start-trans.c (fshelp_start_translator): Fix auth_user_authenticate to use the correct rendezvous port in producing realnode from node.. Fri Jul 22 12:03:14 1994 Michael I Bushnell * Makefile: Rewritten in accord with new scheme. Wed Jul 20 13:31:39 1994 Michael I Bushnell * start-trans.c (fshelp_start_translator): Missing first arg to mach_port_deallocate of `dir'. Tue Jul 19 18:44:53 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) * fshelp.h (fshelp_start_translator): Doc fix. (fshelp_handle_fsys_startup): Deleted dotdot args. * trans.h (struct transboot): Removed member `dir'. * start-trans.c (fshelp_start_translator): Don't initialize TB->dir. (fshelp_start_translator): Deallocate DIR arg when we're done with it. * handle-startup.c (fshelp_handle_fsys_startup): Deleted dotdot args. * transboot-clean.c (fshelp_transboot_clean): Don't free no-longer-existent TB->dir. Fri Jul 8 12:58:54 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) * trans-cntl.c: Include . Thu Jul 7 18:08:49 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) * trans-drop.c: New file. * fshelp.h (fshelp_translator_drop): New declaration. * Makefile (OBJS): Added trans-drop.o. (SRCS): ADded trans-drop.c. Tue Jul 5 14:14:53 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) * Makefile (DIST_FILES): New variable. Thu Jun 16 16:27:39 1994 Michael I Bushnell (mib@geech.gnu.ai.mit.edu) * fshelp.h (fshelp_get_node_port, fshelp_done_with_node): Deleted prototypes. (fshelp_start_translator): Changed types of DIR and NODE to be file_t. * trans.h (struct transboot): Deleted members UID and GID. Changed types of DIR and NODE to be file_t. * transboot-clean.c (fshelp_transboot_clean): Deallocate ports TB->node and TB->dir instead of calling fshelp_done_with_node. * start-trans.c (fshelp_start_translator): Changed types of DIR and MODE to be file_t. Rewritten to behave correctly in numerous ways. * handle-startup.c (fshelp_handle_fsys_startup): Return REAL and DIR from ports in TB instead of calling fshelp_get_node_port. Fri Jun 3 18:13:04 1994 Michael I Bushnell (mib@churchy.gnu.ai.mit.edu) * fshelp.h (fshelp_set_control): New declaration. * trans-cntl.c: New file. * Makefile (SRCS): Added trans-cntl.c. (OBJS): Added trans-cntl.o. trans-cntl.o: Depend on trans.h. Thu May 5 07:46:00 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) * Makefile: Change uses of $(headers) to $(includedir). Mon Feb 14 11:32:59 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) * Makefile (install): New target.