summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--init/ChangeLog4
-rw-r--r--init/init.c8
2 files changed, 10 insertions, 2 deletions
diff --git a/init/ChangeLog b/init/ChangeLog
index e1ecee24..0a816ccc 100644
--- a/init/ChangeLog
+++ b/init/ChangeLog
@@ -1,3 +1,7 @@
+2000-03-17 Thomas Bushnell, BSG <tb@mit.edu>
+
+ * init.c (launch_core_servers): Don't use MOVE_SEND in Hurd RPCs.
+
2000-03-13 Roland McGrath <roland@baalperazim.frob.com>
* stubs.c (send_signal): Don't use mach_msg_destroy, since it wants
diff --git a/init/init.c b/init/init.c
index 70453a90..51aa581c 100644
--- a/init/init.c
+++ b/init/init.c
@@ -651,7 +651,8 @@ launch_core_servers (void)
proc_task2proc (procserver, authtask, &authproc);
proc_mark_exec (authproc);
startup_authinit_reply (authreply, authreplytype, 0, authproc,
- MACH_MSG_TYPE_MOVE_SEND);
+ MACH_MSG_TYPE_COPY_SEND);
+ mach_port_deallocate (mach_task_self (), authproc);
/* Give the library our auth and proc server ports. */
_hurd_port_set (&_hurd_ports[INIT_PORT_AUTH], authserver);
@@ -699,7 +700,8 @@ launch_core_servers (void)
mach_port_deallocate (mach_task_self (), old);
/* Give the bootstrap FS its proc and auth ports. */
- errno = fsys_init (bootport, fsproc, MACH_MSG_TYPE_MOVE_SEND, authserver);
+ errno = fsys_init (bootport, fsproc, MACH_MSG_TYPE_COPY_SEND, authserver);
+ mach_port_deallocate (mach_task_self (), fsproc);
if (errno)
error (0, errno, "fsys_init"); /* Not necessarily fatal. */
}
@@ -724,6 +726,8 @@ init_stdarrays ()
__USEPORT (AUTH, auth_makeauth (port, 0, MACH_MSG_TYPE_COPY_SEND, 0,
0, 0, 0, 0, 0, 0, 0, 0, &nullauth));
+ /* MAKE_SEND is safe in these transactions because we destroy REF
+ ourselves each time. */
pt = getcwdir ();
ref = mach_reply_port ();
io_reauthenticate (pt, ref, MACH_MSG_TYPE_MAKE_SEND);