From 2dc6589322aee715c65532982c01a5f0e895262e Mon Sep 17 00:00:00 2001 From: corinna Date: Mon, 23 Nov 2009 21:21:38 +0000 Subject: [PATCH] * fhandler_socket.cc (fhandler_socket::set_close_on_exec): Only call fhandler_base::set_close_on_exec for inheritable sockets. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/fhandler_socket.cc | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 529daa2964..ab6cf6fca6 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2009-11-23 Corinna Vinschen + + * fhandler_socket.cc (fhandler_socket::set_close_on_exec): Only call + fhandler_base::set_close_on_exec for inheritable sockets. + 2009-11-21 Corinna Vinschen * globals.cc (ro_u_dll): New R/O unicode string. diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc index 6a66206867..ba230dff1a 100644 --- a/winsup/cygwin/fhandler_socket.cc +++ b/winsup/cygwin/fhandler_socket.cc @@ -2034,8 +2034,13 @@ fhandler_socket::set_close_on_exec (bool val) { set_no_inheritance (wsock_mtx, val); set_no_inheritance (wsock_evt, val); - fhandler_base::set_close_on_exec (val); - debug_printf ("set close_on_exec for %s to %d", get_name (), val); + if (need_fixup_before ()) + { + close_on_exec (val); + debug_printf ("set close_on_exec for %s to %d", get_name (), val); + } + else + fhandler_base::set_close_on_exec (val); } void -- 2.11.0