Sun Apr 7 10:37:30 1996 Roland McGrath <roland@whiz-bang.gnu.ai.mit.edu>
authorRoland McGrath <roland@gnu.org>
Sun, 7 Apr 1996 17:44:31 +0000 (17:44 +0000)
committerRoland McGrath <roland@gnu.org>
Sun, 7 Apr 1996 17:44:31 +0000 (17:44 +0000)
* 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  <miles@gnu.ai.mit.edu>

ChangeLog
sysdeps/mach/hurd/fork.c

index d4e033b..ec77534 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,9 @@
-Fri Apr  5 17:43:41 1996  Miles Bader  <miles@gnu.ai.mit.edu>
+Sun Apr  7 10:37:30 1996  Roland McGrath  <roland@whiz-bang.gnu.ai.mit.edu>
+
+       * 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  <miles@gnu.ai.mit.edu>
 
        * sysdeps/mach/hurd/i386/sigreturn.c (__sigreturn): Store
        MACH_PORT_DEAD in the thread reply-port variable before destroying
index 8d730ae..5814cc2 100644 (file)
@@ -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