Author: jilles
Date: Mon May 30 21:41:06 2011
New Revision: 222511
URL: http://svn.freebsd.org/changeset/base/222511

Log:
  posix_spawn(): Do not fail when trying to close an fd that is not open.
  
  As noted in Austin Group issue #370 (an interpretation has been issued),
  failing posix_spawn() because an fd specified with
  posix_spawn_file_actions_addclose() is not open is unnecessarily harsh, and
  there are existing implementations that do not fail posix_spawn() for this
  reason.
  
  Reviewed by:  ed
  MFC after:    10 days

Modified:
  head/lib/libc/gen/posix_spawn.c

Modified: head/lib/libc/gen/posix_spawn.c
==============================================================================
--- head/lib/libc/gen/posix_spawn.c     Mon May 30 21:34:44 2011        
(r222510)
+++ head/lib/libc/gen/posix_spawn.c     Mon May 30 21:41:06 2011        
(r222511)
@@ -163,11 +163,8 @@ process_file_actions_entry(posix_spawn_f
                        return (errno);
                break;
        case FAE_CLOSE:
-               /* Perform a close() */
-               if (_close(fae->fae_fildes) != 0) {
-                       if (errno == EBADF)
-                               return (EBADF);
-               }
+               /* Perform a close(), do not fail if already closed */
+               (void)_close(fae->fae_fildes);
                break;
        }
        return (0);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to