Formerly ../hurd/hurdkill.c.~5~
[kopensolaris-gnu/glibc.git] / hurd / dtable.c
index 9a494c2..4812c69 100644 (file)
@@ -141,6 +141,8 @@ fork_child_dtable (void)
   for (i = 0; !err && i < _hurd_dtablesize; ++i)
     {
       struct hurd_fd *d = _hurd_dtable[i];
+      if (d == NULL)
+       continue;
 
       /* No other thread is using the send rights in the child task.  */
       d->port.users = d->ctty.users = NULL;
@@ -150,9 +152,8 @@ fork_child_dtable (void)
          /* There was a ctty-special port in the parent.
             We need to get one for ourselves too.  */
          __mach_port_deallocate (__mach_task_self (), d->port.port);
-         err = __term_become_ctty (d->ctty.port,
-                                   _hurd_pid, _hurd_pgrp, _hurd_msgport,
-                                   &d->port.port);
+         err = __term_open_ctty (d->ctty.port, _hurd_pid, _hurd_pgrp,
+                                 &d->port.port);
          if (err)
            {
              d->port.port = d->ctty.port;
@@ -198,8 +199,7 @@ ctty_new_pgrp (void)
          /* This fd has a ctty-special port.  We need a new one, to tell
              the io server of our different process group.  */
          io_t new;
-         if (! __term_become_ctty (ctty, _hurd_pid, _hurd_pgrp, _hurd_msgport,
-                                   &new))
+         if (! __term_open_ctty (ctty, _hurd_pid, _hurd_pgrp, &new))
            _hurd_port_set (&d->port, new);
        }