From c7300009cdf8f558dd6129228e3b2a7072a58720 Mon Sep 17 00:00:00 2001 From: Steve Lau <stevelauc@outlook.com> Date: Sat, 20 Jul 2024 20:41:52 +0800 Subject: [PATCH] feat: ignore negative fd and clear its revents in poll(2) --- src/header/poll/mod.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/header/poll/mod.rs b/src/header/poll/mod.rs index 887402ce..cbf4e9de 100644 --- a/src/header/poll/mod.rs +++ b/src/header/poll/mod.rs @@ -57,6 +57,12 @@ pub fn poll_epoll(fds: &mut [pollfd], timeout: c_int) -> c_int { for i in 0..fds.len() { let mut pfd = &mut fds[i]; + // Ignore the entry with negative fd, set the revents to 0 + if pfd.fd < 0 { + pfd.revents = 0; + continue; + } + let mut event = epoll_event { events: 0, data: epoll_data { u64: i as u64 }, -- GitLab