From: Pádraig Brady
Date: Tue, 28 Feb 2023 13:34:31 +0000 (+0000) Subject: tail: avoid undefined behavior when polling outputs X-Git-Tag: v9.2~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5bcc2912e7d7c16d3052a7ed4f0904f72573255e;p=thirdparty%2Fcoreutils.git tail: avoid undefined behavior when polling outputs * src/tail.c (check_output_alive): Only check the returned events from poll() when it indicates there are events to check. --- diff --git a/src/tail.c b/src/tail.c index e2e7f46909..78022fc4b5 100644 --- a/src/tail.c +++ b/src/tail.c @@ -367,9 +367,9 @@ check_output_alive (void) struct pollfd pfd; pfd.fd = STDOUT_FILENO; pfd.events = pfd.revents = 0; - pfd.events |= POLLRDBAND; /* Needed for illumos, macos. */ + pfd.events |= POLLRDBAND; /* Needed for illumos, macOS. */ - if (poll (&pfd, 1, 0) >= 0 && (pfd.revents & (POLLERR | POLLHUP))) + if (poll (&pfd, 1, 0) > 0 && (pfd.revents & (POLLERR | POLLHUP))) die_pipe (); #else struct timeval delay;