From d46ed263afc680ce6a7f84114a3014b84e447987 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 29 Mar 2012 17:34:55 +0000 Subject: [PATCH] * fhandler_console.cc (fhandler_console::set_unit): Don't succeed unless we are opening a console actually associated with this process. --- winsup/cygwin/ChangeLog | 7 ++++++- winsup/cygwin/fhandler_console.cc | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 47001a029..bff0e57f6 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,6 +1,11 @@ +2012-03-29 Christopher Faylor + + * fhandler_console.cc (fhandler_console::set_unit): Don't succeed + unless we are opening a console actually associated with this process. + 2012-03-29 Corinna Vinschen - * sec_acl.cc (acl32): Fix potnetial crash if build_fh_name returns NULL. + * sec_acl.cc (acl32): Fix potential crash if build_fh_name returns NULL. 2012-03-29 Christopher Faylor diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc index a3553a728..5be7111ff 100644 --- a/winsup/cygwin/fhandler_console.cc +++ b/winsup/cygwin/fhandler_console.cc @@ -135,6 +135,7 @@ fhandler_console::set_unit () bool created; fh_devices devset; lock_ttys here; + HWND me; if (shared_console_info) { fh_devices this_unit = dev (); @@ -146,9 +147,14 @@ fhandler_console::set_unit () || this_unit == FH_TTY) ? shared_unit : FH_ERROR; } + else if ((myself->ctty != -1 && !iscons_dev (myself->ctty)) + || !(me = GetConsoleWindow ())) + { + created = false; + devset = FH_ERROR; + } else { - HWND me = GetConsoleWindow (); created = true; shared_console_info = open_shared_console (me, cygheap->console_h, created); ProtectHandleINH (cygheap->console_h);