From: Piotr Caban piotr@codeweavers.com
There's a race on macOS when sending socket fd with sendmsg. The fd may get broken if it's closed before recvmsg is called. --- dlls/ntdll/unix/process.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/process.c b/dlls/ntdll/unix/process.c index 4342ac8ac45..2c6dc1b43cc 100644 --- a/dlls/ntdll/unix/process.c +++ b/dlls/ntdll/unix/process.c @@ -846,7 +846,6 @@ NTSTATUS WINAPI NtCreateUserProcess( HANDLE *process_handle_ptr, HANDLE *thread_ #endif
wine_server_send_fd( socketfd[1] ); - close( socketfd[1] );
/* create the process on the server side */
@@ -875,6 +874,7 @@ NTSTATUS WINAPI NtCreateUserProcess( HANDLE *process_handle_ptr, HANDLE *thread_ process_info = wine_server_ptr_handle( reply->info ); } SERVER_END_REQ; + close( socketfd[1] ); free( objattr ); free( handles ); free( jobs );