diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2019-01-08 18:50:11 +0100 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2019-01-08 21:47:28 +0100 |
commit | 0c545f3264aaaac3d02d3ef785a2e2e9d77ed03f (patch) | |
tree | 13a244df80dee5bc42e975dbc31dd4b98b7f2323 | |
parent | 9ba65ab8b5c5ece442931e585230d1e0422da538 (diff) | |
download | cygnal-0c545f3264aaaac3d02d3ef785a2e2e9d77ed03f.tar.gz cygnal-0c545f3264aaaac3d02d3ef785a2e2e9d77ed03f.tar.bz2 cygnal-0c545f3264aaaac3d02d3ef785a2e2e9d77ed03f.zip |
Cygwin: open: handle O_CLOEXEC when opening file from handle
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r-- | winsup/cygwin/fhandler.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc index 9f5e0094f..9af08d735 100644 --- a/winsup/cygwin/fhandler.cc +++ b/winsup/cygwin/fhandler.cc @@ -555,7 +555,11 @@ fhandler_base::open (int flags, mode_t mode) /* Allow to reopen from handle. This is utilized by open ("/proc/PID/fd/DESCRIPTOR", ...); */ if (get_handle ()) - pc.init_reopen_attr (attr, get_handle ()); + { + pc.init_reopen_attr (attr, get_handle ()); + if (!(flags & O_CLOEXEC)) + attr.Attributes |= OBJ_INHERIT; + } else pc.get_object_attr (attr, *sec_none_cloexec (flags)); |