public inbox for cygwin-cvs@sourceware.org help / color / mirror / Atom feed
From: Ken Brown <kbrown@sourceware.org> To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: pty: Fix handle leak regarding attach_mutex. Date: Sun, 10 Oct 2021 12:59:19 +0000 (GMT) [thread overview] Message-ID: <20211010125919.619E83858D28@sourceware.org> (raw) https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=dcd564f65caa96a9dc5c0d17020b9674a1a36e32 commit dcd564f65caa96a9dc5c0d17020b9674a1a36e32 Author: Takashi Yano <takashi.yano@nifty.ne.jp> Date: Sun Oct 10 09:49:53 2021 +0900 Cygwin: pty: Fix handle leak regarding attach_mutex. - If the process having master pty opened is forked, attach_mutex fails to be closed when master is closed. This patch fixes the issue. Diff: --- winsup/cygwin/fhandler_console.cc | 2 +- winsup/cygwin/fhandler_tty.cc | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc index ee862b17d..aee5e8284 100644 --- a/winsup/cygwin/fhandler_console.cc +++ b/winsup/cygwin/fhandler_console.cc @@ -57,7 +57,7 @@ fhandler_console::console_state NO_COPY *fhandler_console::shared_console_info; bool NO_COPY fhandler_console::invisible_console; /* Mutex for AttachConsole()/FreeConsole() in fhandler_tty.cc */ -HANDLE NO_COPY attach_mutex; +HANDLE attach_mutex; static inline void acquire_attach_mutex (DWORD t) diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc index 823dabf73..f523dafed 100644 --- a/winsup/cygwin/fhandler_tty.cc +++ b/winsup/cygwin/fhandler_tty.cc @@ -57,7 +57,7 @@ struct pipe_reply { }; extern HANDLE attach_mutex; /* Defined in fhandler_console.cc */ -static LONG NO_COPY master_cnt = 0; +static LONG master_cnt = 0; inline static bool pcon_pid_alive (DWORD pid); @@ -2042,10 +2042,10 @@ fhandler_pty_master::close () } release_output_mutex (); master_fwd_thread->terminate_thread (); - if (InterlockedDecrement (&master_cnt) == 0) - CloseHandle (attach_mutex); } } + if (InterlockedDecrement (&master_cnt) == 0) + CloseHandle (attach_mutex); /* Check if the last master handle has been closed. If so, set input_available_event to wake up potentially waiting slaves. */
reply other threads:[~2021-10-10 12:59 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20211010125919.619E83858D28@sourceware.org \ --to=kbrown@sourceware.org \ --cc=cygwin-cvs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).