From 3125073e100f2d6f82144b1e07321a340b538967 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sun, 7 Apr 1996 17:44:31 +0000 Subject: Sun Apr 7 10:37:30 1996 Roland McGrath * sysdeps/mach/hurd/fork.c: Don't leak send rights to the child's proc port in the parent. Fri Apr 5 17:43:41 1996 Miles Bader --- ChangeLog | 8 +++++--- sysdeps/mach/hurd/fork.c | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index d4e033b53c..ec775342db 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,9 @@ -Fri Apr 5 17:43:41 1996 Miles Bader +Sun Apr 7 10:37:30 1996 Roland McGrath + + * sysdeps/mach/hurd/fork.c: Don't leak send rights to the child's proc + port in the parent. - * sysdeps/mach/hurd/fork.c (__fork): Don't leak send-rights to the - child's proc port in the parent. +Fri Apr 5 17:43:41 1996 Miles Bader * sysdeps/mach/hurd/i386/sigreturn.c (__sigreturn): Store MACH_PORT_DEAD in the thread reply-port variable before destroying diff --git a/sysdeps/mach/hurd/fork.c b/sysdeps/mach/hurd/fork.c index 8d730ae4fb..5814cc2db2 100644 --- a/sysdeps/mach/hurd/fork.c +++ b/sysdeps/mach/hurd/fork.c @@ -297,6 +297,7 @@ __fork (void) Give the child as many references for it as we have. */ mach_port_urefs_t refs, *record_refs = NULL; mach_port_t insert; + mach_msg_type_name_t insert_type = MACH_MSG_TYPE_COPY_SEND; if (portnames[i] == newtask) /* Skip the name we use for the child's task port. */ continue; @@ -309,6 +310,7 @@ __fork (void) /* Get the proc server port for the new task. */ if (err = __proc_task2proc (portnames[i], newtask, &insert)) LOSE; + insert_type = MACH_MSG_TYPE_MOVE_SEND; } else if (portnames[i] == ss->thread) { @@ -347,6 +349,7 @@ __fork (void) if (j < nthreads) continue; + /* Copy our own send right. */ insert = portnames[i]; } /* Find out how many user references we have for -- cgit v1.2.3