Fix issue #11432. if the stdin pipe is the same file descriptor as either stdout or stderr
in the _posixsubprocess C extension module it would unintentionally close the fds and raise an error.
This commit is contained in:
parent
112bb3ac6a
commit
8121898ec5
|
@ -99,10 +99,10 @@ static void child_exec(char *const exec_array[],
|
|||
if (p2cread > 2) {
|
||||
POSIX_CALL(close(p2cread));
|
||||
}
|
||||
if (c2pwrite > 2) {
|
||||
if (c2pwrite > 2 && c2pwrite != p2cread) {
|
||||
POSIX_CALL(close(c2pwrite));
|
||||
}
|
||||
if (errwrite != c2pwrite && errwrite > 2) {
|
||||
if (errwrite != c2pwrite && errwrite != p2cread && errwrite > 2) {
|
||||
POSIX_CALL(close(errwrite));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue