bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 6/7] hurd: Respect existing FD_CLOEXEC in S_msg_set_fd


From: Sergey Bugaev
Subject: [PATCH 6/7] hurd: Respect existing FD_CLOEXEC in S_msg_set_fd
Date: Sat, 29 Apr 2023 16:13:53 +0300

If the process has set the close-on-exec flag for the file descriptor,
it expects the file descriptor to get closed on exec, even if we replace
what the file descriptor refers to.

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
---
 hurd/hurdmsg.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/hurd/hurdmsg.c b/hurd/hurdmsg.c
index 896fb87c..8fde1f53 100644
--- a/hurd/hurdmsg.c
+++ b/hurd/hurdmsg.c
@@ -323,7 +323,13 @@ _S_msg_set_fd (mach_port_t msgport, mach_port_t auth,
   AUTHCHECK;
 
   /* We consume the reference if successful.  */
-  err = HURD_FD_USE (which, (_hurd_port2fd (descriptor, port, 0), 0));
+  err = HURD_FD_USE (which,
+                    ({
+                      int flags = (descriptor->flags & FD_CLOEXEC)
+                                  ? O_CLOEXEC : 0;
+                      _hurd_port2fd (descriptor, port, flags);
+                      0;
+                    }));
   if (err)
     return err;
 
-- 
2.40.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]