diff --git a/src/header/poll/mod.rs b/src/header/poll/mod.rs
index 887402ceafa0961034115da9a85ab71f8d1a21e1..cbf4e9defbc2238964292966d07f28cb83720ed8 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 },