From 5bcc2912e7d7c16d3052a7ed4f0904f72573255e Mon Sep 17 00:00:00 2001 From: =?utf8?q?P=C3=A1draig=20Brady?= Date: Tue, 28 Feb 2023 13:34:31 +0000 Subject: [PATCH] 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. --- src/tail.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; -- 2.47.2