There is a potential bug caused by C's operator precedence when checking the flags set by `poll` in `trace-cmd listen`: if (!fds[i].revents & POLLIN) continue; vs if (!(fds[i].revents & POLLIN)) continue; Curiously enough, the bug doesn't manifest itself since POLLIN is equal to 1 and `trace-cmd listen` waits only for read events so no other flags will be set by `poll`. Signed-off-by: Slavomir Kaslev <kaslevs@xxxxxxxxxx> --- tracecmd/trace-listen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tracecmd/trace-listen.c b/tracecmd/trace-listen.c index 7bc723e..c05c2d8 100644 --- a/tracecmd/trace-listen.c +++ b/tracecmd/trace-listen.c @@ -2020,7 +2020,7 @@ static void do_accept_loop(int nfd, int vfd, int mfd) continue; } - if (!fds[i].revents & POLLIN) + if (!(fds[i].revents & POLLIN)) continue; if (i < FD_CONNECTED) { -- 2.17.1
![]() |