From 09a49804424e6866c1119b6ed13776ae3c4616ce Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Fri, 14 Jul 2017 08:48:42 -0700 Subject: [PATCH] Make dup/dup2 clear cloexec --- src/syscall/fs.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/syscall/fs.rs b/src/syscall/fs.rs index 5e378dee..40070513 100644 --- a/src/syscall/fs.rs +++ b/src/syscall/fs.rs @@ -6,7 +6,7 @@ use scheme::{self, FileHandle}; use syscall; use syscall::data::{Packet, Stat}; use syscall::error::*; -use syscall::flag::{F_GETFL, F_SETFL, O_ACCMODE, O_RDONLY, O_WRONLY, MODE_DIR, MODE_FILE}; +use syscall::flag::{F_GETFL, F_SETFL, O_ACCMODE, O_RDONLY, O_WRONLY, MODE_DIR, MODE_FILE, O_CLOEXEC}; pub fn file_op(a: usize, fd: FileHandle, c: usize, d: usize) -> Result { let (file, pid, uid, gid) = { @@ -262,7 +262,7 @@ pub fn dup(fd: FileHandle, buf: &[u8]) -> Result { context.add_file(::context::file::File { scheme: file.scheme, number: new_id, - flags: file.flags, + flags: file.flags & !O_CLOEXEC, event: None, }).ok_or(Error::new(EMFILE)) } @@ -297,7 +297,7 @@ pub fn dup2(fd: FileHandle, new_fd: FileHandle, buf: &[u8]) -> Result