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
This commit is contained in:
parent
56599263c5
commit
562b28821e
@ -163,11 +163,8 @@ process_file_actions_entry(posix_spawn_file_actions_entry_t *fae)
|
||||
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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user