svn commit: r222511 - head/lib/libc/gen
Jilles Tjoelker
jilles at FreeBSD.org
Mon May 30 21:41:06 UTC 2011
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);
More information about the svn-src-all
mailing list