From 1eefa0a123d4dd0ebe499022a5552dddfcbbdb34 Mon Sep 17 00:00:00 2001 From: "Tate, Hongliang Tian" Date: Fri, 27 Mar 2020 08:08:20 +0000 Subject: [PATCH] Fix poll when given negative fds --- src/libos/src/net/io_multiplexing.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libos/src/net/io_multiplexing.rs b/src/libos/src/net/io_multiplexing.rs index ff315377..27bb8a5e 100644 --- a/src/libos/src/net/io_multiplexing.rs +++ b/src/libos/src/net/io_multiplexing.rs @@ -132,6 +132,13 @@ pub fn do_poll(pollfds: &mut [libc::pollfd], timeout: c_int) -> Result { let current_ref = process::get_current(); let mut proc = current_ref.lock().unwrap(); for (i, pollfd) in pollfds.iter_mut().enumerate() { + // Poll should just ignore negative fds + if pollfd.fd < 0 { + u_pollfds[i].fd = -1; + u_pollfds[i].revents = 0; + continue; + } + let file_ref = proc .get_files() .lock()