diff mbox series

redir: Fix double close in dupredirect

Message ID ZjXh8vLqXmA2BQR3@gondor.apana.org.au (mailing list archive)
State Accepted
Delegated to: Herbert Xu
Headers show
Series redir: Fix double close in dupredirect | expand

Commit Message

Herbert Xu May 4, 2024, 7:21 a.m. UTC
For a redirection like "> /dev/null" dupredirect will close the
newly opened file descriptor twice in a row because sh_dup2 also
closes the new file descriptor.

Remove the extra close in dupredirect.

Fixes: 509f5b0dcd71 ("redir: Use memfd_create instead of pipe")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
---
 src/redir.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/src/redir.c b/src/redir.c
index bf5207d..2505d49 100644
--- a/src/redir.c
+++ b/src/redir.c
@@ -319,11 +319,9 @@  static void dupredirect(union node *redir, int f)
 				sh_dup2(f, fd, -1);
 			return;
 		}
-		f = fd;
+		close(fd);
 	} else
 		sh_dup2(f, fd, f);
-
-	close(f);
 }
 
 int sh_pipe(int pip[2], int memfd)