From 9dedf72e7123d028f10dccbb7c5678868e68eb0b Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Tue, 1 Apr 2008 16:12:17 +0000 Subject: script: do not ignore poll() errors. ~+20 bytes. --- util-linux/script.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/util-linux/script.c b/util-linux/script.c index 700f0cb0a..5d6f4d924 100644 --- a/util-linux/script.c +++ b/util-linux/script.c @@ -115,7 +115,11 @@ int script_main(int argc ATTRIBUTE_UNUSED, char **argv) /* TODO: don't use full_write's, use proper write buffering */ while (fd_count) { /* not safe_poll! we want SIGCHLD to EINTR poll */ - poll(ppfd, fd_count, -1); + if (poll(ppfd, fd_count, -1) < 0 && errno != EINTR) { + /* If child exits too quickly, we may get EIO: + * for example, try "script -c true" */ + break; + } if (pfd[0].revents) { count = safe_read(0, buf, sizeof(buf)); if (count <= 0) { -- cgit v1.2.3