From 20a2cd6291924d405e636916962c6294d3b8544e Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Tue, 25 Oct 2016 19:04:39 +0200 Subject: ash: [REDIR] Remove EMFILE special case Upstream commit: Date: Sun, 6 May 2007 12:01:37 +1000 [REDIR] Remove EMFILE special case No caller of copyfd need to ignore EMFILE so we can remove the special case and just let it call sh_error on any error. Signed-off-by: Denys Vlasenko --- shell/ash.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'shell/ash.c') diff --git a/shell/ash.c b/shell/ash.c index 9dcf80975..8092e3971 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -5190,9 +5190,7 @@ openredirect(union node *redir) } /* - * Copy a file descriptor to be >= to. Returns -1 - * if the source file descriptor is closed, EMPTY if there are no unused - * file descriptors left. + * Copy a file descriptor to be >= to. Throws exception on error. */ /* 0x800..00: bit to set in "to" to request dup2 instead of fcntl(F_DUPFD). * old code was doing close(to) prior to copyfd() to achieve the same */ @@ -5213,8 +5211,6 @@ copyfd(int from, int to) newfd = fcntl(from, F_DUPFD, to); } if (newfd < 0) { - if (errno == EMFILE) - return EMPTY; /* Happens when source fd is not open: try "echo >&99" */ ash_msg_and_raise_error("%d: %m", from); } @@ -10243,8 +10239,6 @@ setinputfile(const char *fname, int flags) if (fd < 10) { fd2 = copyfd(fd, 10); close(fd); - if (fd2 < 0) - ash_msg_and_raise_error("out of file descriptors"); fd = fd2; } setinputfd(fd, flags & INPUT_PUSH_FILE); -- cgit v1.2.3