4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-01-19 04:49:25 +08:00

Cygwin: fhandler_pipe::open_setup: fail on error creating mutexes

This commit is contained in:
Ken Brown 2021-09-18 08:34:04 -04:00
parent e5fcb021cc
commit 6fc0aa8e5d

View File

@ -194,26 +194,39 @@ out:
bool
fhandler_pipe::open_setup (int flags)
{
bool read_mtx_created = false;
if (!fhandler_base::open_setup (flags))
goto err;
if (get_dev () == FH_PIPER && !read_mtx)
{
SECURITY_ATTRIBUTES *sa = sec_none_cloexec (flags);
read_mtx = CreateMutex (sa, FALSE, NULL);
if (!read_mtx)
debug_printf ("CreateMutex read_mtx failed: %E");
if (read_mtx)
read_mtx_created = true;
else
{
debug_printf ("CreateMutex read_mtx failed: %E");
goto err;
}
}
if (!hdl_cnt_mtx)
{
SECURITY_ATTRIBUTES *sa = sec_none_cloexec (flags);
hdl_cnt_mtx = CreateMutex (sa, FALSE, NULL);
if (!hdl_cnt_mtx)
debug_printf ("CreateMutex hdl_cnt_mtx failed: %E");
{
debug_printf ("CreateMutex hdl_cnt_mtx failed: %E");
goto err_close_read_mtx;
}
}
if (get_dev () == FH_PIPEW && !query_hdl)
set_pipe_non_blocking (is_nonblocking ());
return true;
err_close_read_mtx:
if (read_mtx_created)
CloseHandle (read_mtx);
err:
return false;
}