From ea5e24281aaaead307b08bd3f646a138c19ea6bc Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Sat, 4 May 2024 15:21:22 +0800 Subject: [PATCH] redir: Fix double close in dupredirect 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 --- src/redir.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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)