hurd spawni: Fix reauthenticating closed fds
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Thu, 5 May 2022 00:14:43 +0000 (02:14 +0200)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Thu, 5 May 2022 00:14:43 +0000 (02:14 +0200)
When an fd is closed, the port cell remains, but the port becomes
MACH_PORT_NULL, so we have to guard against it.

sysdeps/mach/hurd/spawni.c

index f19b688..ffc62e6 100644 (file)
@@ -154,7 +154,7 @@ __spawni (pid_t *pid, const char *file,
      reauthenticated, or was newly opened on behalf of the child.  */
   error_t reauthenticate_fd (int fd)
     {
-      if (dtable_cells[fd] != NULL)
+      if (dtable_cells[fd] != NULL && dtable[fd] != MACH_PORT_NULL)
        {
          file_t newfile;
          mach_port_t ref = __mach_reply_port ();