]> granicus.if.org Git - python/commit
bpo-32844: Fix a subprocess misredirection of a low fd (GH5689)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 26 Mar 2018 20:14:09 +0000 (13:14 -0700)
committerGitHub <noreply@github.com>
Mon, 26 Mar 2018 20:14:09 +0000 (13:14 -0700)
commit05455637f3ba9bacd459700f4feab783e5967d69
treeb81d187dd2568f543a204932abfe07d941ed9a90
parentc6147acd2ce5fa9e344f179b539f3b21b9ae1a6d
bpo-32844: Fix a subprocess misredirection of a low fd (GH5689)

bpo-32844: subprocess: Fix a potential misredirection of a low fd to stderr.

When redirecting, subprocess attempts to achieve the following state:
each fd to be redirected to is less than or equal to the fd
it is redirected from, which is necessary because redirection
occurs in the ascending order of destination descriptors.
It fails to do so in a couple of corner cases,
for example, if 1 is redirected to 2 and 0 is closed in the parent.
(cherry picked from commit 0e7144b064a19493a146af94175a087b3888c37b)

Co-authored-by: Alexey Izbyshev <izbyshev@users.noreply.github.com>
Lib/test/test_subprocess.py
Misc/NEWS.d/next/Library/2018-02-28-13-08-00.bpo-32844.u8tnAe.rst [new file with mode: 0644]
Modules/_posixsubprocess.c