summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_socket.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/fhandler_socket.cc')
-rw-r--r--winsup/cygwin/fhandler_socket.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc
index 5b7b97da9..b8ec37bdc 100644
--- a/winsup/cygwin/fhandler_socket.cc
+++ b/winsup/cygwin/fhandler_socket.cc
@@ -344,7 +344,10 @@ fhandler_socket::dup (fhandler_base *child)
{
fhs->fixup_after_fork (hMainProc);
if (fhs->get_io_handle() != (HANDLE) INVALID_SOCKET)
- return 0;
+ {
+ cygheap->fdtab.inc_need_fixup_before ();
+ return 0;
+ }
}
debug_printf ("WSADuplicateSocket failed, trying DuplicateHandle");
}
@@ -363,6 +366,7 @@ fhandler_socket::dup (fhandler_base *child)
}
VerifyHandle (nh);
fhs->set_io_handle (nh);
+ cygheap->fdtab.inc_need_fixup_before ();
return 0;
}