Cygwin: AF_UNIX: fix creating shared mem region in dup
reopen_shmem is accidentally called on the parent fhandler rather than the child fhandler, and it's called too early. Make sure to call it on the child and only after its shmem_handle is valid. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
ba2f251d43
commit
92b8b300c2
@ -1201,12 +1201,6 @@ fhandler_socket_unix::dup (fhandler_base *child, int flags)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
fhandler_socket_unix *fhs = (fhandler_socket_unix *) child;
|
fhandler_socket_unix *fhs = (fhandler_socket_unix *) child;
|
||||||
if (reopen_shmem () < 0)
|
|
||||||
{
|
|
||||||
__seterrno ();
|
|
||||||
fhs->close ();
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
if (backing_file_handle && backing_file_handle != INVALID_HANDLE_VALUE
|
if (backing_file_handle && backing_file_handle != INVALID_HANDLE_VALUE
|
||||||
&& !DuplicateHandle (GetCurrentProcess (), backing_file_handle,
|
&& !DuplicateHandle (GetCurrentProcess (), backing_file_handle,
|
||||||
GetCurrentProcess (), &fhs->backing_file_handle,
|
GetCurrentProcess (), &fhs->backing_file_handle,
|
||||||
@ -1224,6 +1218,12 @@ fhandler_socket_unix::dup (fhandler_base *child, int flags)
|
|||||||
fhs->close ();
|
fhs->close ();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if (fhs->reopen_shmem () < 0)
|
||||||
|
{
|
||||||
|
__seterrno ();
|
||||||
|
fhs->close ();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
fhs->sun_path (sun_path ());
|
fhs->sun_path (sun_path ());
|
||||||
fhs->peer_sun_path (peer_sun_path ());
|
fhs->peer_sun_path (peer_sun_path ());
|
||||||
fhs->connect_wait_thr = NULL;
|
fhs->connect_wait_thr = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user