From 319c675f3e378c6f92ec929b510508bf5df8114b Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Thu, 21 Sep 2023 15:53:59 -0700 Subject: [PATCH] Fix a double-`close` in the `no_args_doesnt_break` test. Fix the `no_args_doesnt_break` test to avoid calling `from_raw_fd` twice on the same raw file descriptor, as that cause the file descriptor to be closed twice, which means it could accidentally close some unrelated newly created file descriptor. --- tests/integration_tests.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/integration_tests.rs b/tests/integration_tests.rs index 63a4537e..8d2d3624 100644 --- a/tests/integration_tests.rs +++ b/tests/integration_tests.rs @@ -308,8 +308,10 @@ fn no_args_doesnt_break() { // this test exists. let OpenptyResult { master, slave } = openpty(None, None).expect("Couldn't open pty."); let mut master = unsafe { File::from_raw_fd(master) }; - let stdin = unsafe { Stdio::from_raw_fd(slave) }; - let stdout = unsafe { Stdio::from_raw_fd(slave) }; + let stdin_file = unsafe { File::from_raw_fd(slave) }; + let stdout_file = stdin_file.try_clone().unwrap(); + let stdin = Stdio::from(stdin_file); + let stdout = Stdio::from(stdout_file); let mut child = bat_raw_command() .stdin(stdin)