diff options
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | src/input.c | 2 | ||||
-rw-r--r-- | src/redir.c | 13 |
3 files changed, 4 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog index 24cfce3..98702d5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ 2007-05-06 Herbert Xu <herbert@gondor.apana.org.au> * Removed unnecessary inclusion of redir.h from parser.c. + * Invoke sh_error on error in copyfd. 2007-05-05 Herbert Xu <herbert@gondor.apana.org.au> diff --git a/src/input.c b/src/input.c index 057da71..49a2972 100644 --- a/src/input.c +++ b/src/input.c @@ -439,8 +439,6 @@ setinputfile(const char *fname, int flags) if (fd < 10) { fd2 = copyfd(fd, 10); close(fd); - if (fd2 < 0) - sh_error("Out of file descriptors"); fd = fd2; } setinputfd(fd, flags & INPUT_PUSH_FILE); diff --git a/src/redir.c b/src/redir.c index 2bd8e9f..aab1585 100644 --- a/src/redir.c +++ b/src/redir.c @@ -372,9 +372,7 @@ clearredir(int drop) /* - * 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. Invokes sh_error on error. */ int @@ -383,13 +381,8 @@ copyfd(int from, int to) int newfd; newfd = fcntl(from, F_DUPFD, to); - if (newfd < 0) { - int errno2 = errno; - if (errno2 == EMFILE) - return EMPTY; - else - sh_error("%d: %s", from, strerror(errno2)); - } + if (newfd < 0) + sh_error("%d: %s", from, strerror(errno)); return newfd; } |