Cygwin: pipes: do not duplicate sec_none{_nih} locally when creating objects

We already fetched the correct SECURITY_ATTRIBUTES at the start of
fhandler_pipe::create, so using another SECURITY_ATTRIBUTES object for
the mutex and semaphore objects doesn't make much sense.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen 2021-09-13 22:02:51 +02:00
parent c48361ad9e
commit 8985f1c7c4
1 changed files with 3 additions and 7 deletions

View File

@ -769,11 +769,7 @@ fhandler_pipe::create (fhandler_pipe *fhs[2], unsigned psize, int mode)
unique_id);
/* For the read side of the pipe, add a mutex. See raw_read for the
usage. */
SECURITY_ATTRIBUTES sa = { .nLength = sizeof (SECURITY_ATTRIBUTES),
.lpSecurityDescriptor = NULL,
.bInheritHandle = !(mode & O_CLOEXEC)
};
HANDLE mtx = CreateMutexW (&sa, FALSE, NULL);
HANDLE mtx = CreateMutexW (sa, FALSE, NULL);
if (!mtx)
{
delete fhs[0];
@ -786,11 +782,11 @@ fhandler_pipe::create (fhandler_pipe *fhs[2], unsigned psize, int mode)
fhs[0]->set_read_mutex (mtx);
res = 0;
}
fhs[0]->select_sem = CreateSemaphore (&sa, 0, INT32_MAX, NULL);
fhs[0]->select_sem = CreateSemaphore (sa, 0, INT32_MAX, NULL);
if (fhs[0]->select_sem)
DuplicateHandle (GetCurrentProcess (), fhs[0]->select_sem,
GetCurrentProcess (), &fhs[1]->select_sem,
0, !(mode & O_CLOEXEC), DUPLICATE_SAME_ACCESS);
0, sa->bInheritHandle, DUPLICATE_SAME_ACCESS);
}
debug_printf ("%R = pipe([%p, %p], %d, %y)", res, fhs[0], fhs[1], psize, mode);