From cc99bf5d8f02038313dcbcb3c2d3c049d8a348a3 Mon Sep 17 00:00:00 2001
From: Jeremy Soller <jackpot51@gmail.com>
Date: Thu, 16 Aug 2018 18:47:52 -0600
Subject: [PATCH] Don't forget to close executable file

---
 src/libstd/sys/redox/process.rs | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/libstd/sys/redox/process.rs b/src/libstd/sys/redox/process.rs
index b867dccad454..de442c37d2d8 100644
--- a/src/libstd/sys/redox/process.rs
+++ b/src/libstd/sys/redox/process.rs
@@ -315,7 +315,7 @@ macro_rules! t {
         };
 
         let fd = if let Some(program) = program_opt {
-            t!(cvt(syscall::open(program.as_os_str().as_bytes(), syscall::O_RDONLY)))
+            t!(cvt(syscall::open(program.as_os_str().as_bytes(), syscall::O_RDONLY | syscall::O_CLOEXEC)))
         } else {
             return io::Error::from_raw_os_error(syscall::ENOENT);
         };
@@ -340,6 +340,7 @@ macro_rules! t {
         }
 
         if let Err(err) = syscall::fexec(fd, &args, &vars) {
+            let _ = syscall::close(fd);
             io::Error::from_raw_os_error(err.errno as i32)
         } else {
             panic!("return from exec without err");
-- 
GitLab