On Feb 27 17:24, Ken Brown wrote: > fhandler_socket_wsock::fixup_after_exec and > fhandler_socket_unix::fixup_after_exec call fixup_after_fork (NULL), which > would seem to lead to calls to DuplicateHandle with first argument NULL. I > can't find any documentation that says this is legal. What do these calls > do? They fail with ERROR_INVALID_HANDLE. I checked the commit history and it turned out that this has been introduced with commit 528060195ca6c back in 2002. In fhandler_socket_wsock it has no negative impact. fixup_after_exec calls fixup_after_fork *only* on need_fixup_before(), that is, if the handle was some of the special LSP handles, so the socket handle has to be created by WSADuplicateSocket/WSASocket. In that case the parent handle isn't needed. Same in case of fhandler_pty_slave. Its fixup_after_fork doesn't require the parent handle at all. In case of fhandler_socket_unix, this was most likely a straight copy/paste or developer-didn't-actually-think-about-it-error. I fear it was the latter. I have to start thinking about it... Thanks, Corinna -- Corinna Vinschen Cygwin Maintainer