Index: cradle/Cargo.toml
===================================================================
--- cradle.orig/Cargo.toml
+++ cradle/Cargo.toml
@@ -83,5 +83,6 @@ version = "1.0.0"
 optional = true
 
 [target."cfg(unix)".dependencies.nix]
-version = "0.26"
+version = "0.27"
+features = ["poll"]
 optional = true
Index: cradle/src/test_executables/helper.rs
===================================================================
--- cradle.orig/src/test_executables/helper.rs
+++ cradle/src/test_executables/helper.rs
@@ -4,6 +4,7 @@ use std::{
     thread::sleep,
     time::Duration,
 };
+use std::os::fd::BorrowedFd;
 
 fn main() {
     let mut args = std::env::args();
@@ -65,7 +66,8 @@ fn stdin_is_closed() -> bool {
     #[cfg(unix)]
     {
         use nix::poll::{poll, PollFd, PollFlags};
-        let mut poll_fds = [PollFd::new(0, PollFlags::all())];
+        let fdzero = unsafe { BorrowedFd::borrow_raw(0) };
+        let mut poll_fds = [PollFd::new(&fdzero, PollFlags::all())];
         poll(&mut poll_fds, 0).unwrap();
         if let Some(events) = poll_fds[0].revents() {
             events.contains(PollFlags::POLLHUP)
