From d3ed549d518c216a42b43e20f224be5323ee66a8 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Mon, 4 Jul 2011 09:47:10 +0000 Subject: [PATCH] * dtable.cc (dtable::init_std_file_from_handle): Change test for console device in call to fh->init to avoid conhost crash on W7. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/dtable.cc | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 66e982ba4..504b5f128 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2011-07-04 Corinna Vinschen + + * dtable.cc (dtable::init_std_file_from_handle): Change test for console + device in call to fh->init to avoid conhost crash on W7. + 2011-07-04 Corinna Vinschen * environ.cc (environ_init): Reinstantiate on-the-fly CYGWIN variable diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc index 2efd4e878..ec110ecdc 100644 --- a/winsup/cygwin/dtable.cc +++ b/winsup/cygwin/dtable.cc @@ -383,7 +383,7 @@ dtable::init_std_file_from_handle (int fd, HANDLE handle) This needs further investigation but the workaround not to close the handles will have a marginal hit of three extra handles per process at most. */ - if (!fh->init (dev == FH_CONSOLE && wincap.has_console_handle_problem () + if (!fh->init (iscons_dev (dev) && wincap.has_console_handle_problem () ? INVALID_HANDLE_VALUE : handle, access, bin)) api_fatal ("couldn't initialize fd %d for %s", fd, fh->get_name ());