ash: fix open fds leaking in redirects. Closes 9561

commit e19923f665 deleted clearredir()
call in shellexec():

	ash: [REDIR] Remove redundant CLOEXEC calls
	Upstream commit:

	Now that we're marking file descriptors as CLOEXEC in savefd, we no longer
	need to close them on exec or in setinputfd.

but it missed one place where we don't set CLOEXEC. Fixing this.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2017-01-07 10:15:01 +01:00
parent fe93624fb6
commit 86584e134e
5 changed files with 39 additions and 4 deletions

View File

@@ -0,0 +1,6 @@
4
4
4
4
4
4

View File

@@ -0,0 +1,10 @@
# Each of these should show only four lines:
# fds 0,1,2 are stdio; fd 3 is open by opendir() in ls.
# This test detects bugs where redirects leave stray open fds.
ls -1 /proc/self/fd | wc -l
ls -1 /proc/self/fd >/proc/self/fd/1 | wc -l
ls -1 /proc/self/fd >/proc/self/fd/1 2>&1 | wc -l
echo "`ls -1 /proc/self/fd `" | wc -l
echo "`ls -1 /proc/self/fd >/proc/self/fd/1 `" | wc -l
echo "`ls -1 /proc/self/fd >/proc/self/fd/1 2>&1 `" | wc -l