Skip to content

Commit c2e7380

Browse files
authored
Rollup merge of rust-lang#65316 - oconnor663:noninheritable, r=alexcrichton
make File::try_clone produce non-inheritable handles on Windows ~**NOT READY FOR REVIEW.** This PR is currently mainly to trigger CI so that I can see what happens. (Is there a better way to trigger CI?) I don't know whether this change makes sense yet.~ (Edit: @Mark-Simulacrum clarified that CI doesn't currently run on Windows.) --- File handles shouldn't be inheritable in general. `std::process::Command` takes care of making them inheritable when child processes are spawned, and the `CREATE_PROCESS_LOCK` protects against races in that section on Windows. But `File::try_clone` has been creating inheritable file descriptors outside of that lock, which could be leaking into other child processes unintentionally. See also rust-lang#31069 (comment).
2 parents 4800c24 + 93ae692 commit c2e7380

File tree

1 file changed

+1
-1
lines changed
  • src/libstd/sys/windows

1 file changed

+1
-1
lines changed

src/libstd/sys/windows/fs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@ impl File {
412412

413413
pub fn duplicate(&self) -> io::Result<File> {
414414
Ok(File {
415-
handle: self.handle.duplicate(0, true, c::DUPLICATE_SAME_ACCESS)?,
415+
handle: self.handle.duplicate(0, false, c::DUPLICATE_SAME_ACCESS)?,
416416
})
417417
}
418418

0 commit comments

Comments
 (0)