Fix --enable-logging after VS2013 switch

After https://src.chromium.org/viewvc/chrome?view=rev&revision=178656
a valid fileno of stdout or stderr abort connection of the console to
stdio on Windows.

Looking at the VS CRT between 2010 and 2013, it seems the behavior
that r178656 was relying on changed:

(in __initstdio)

C:\Program Files (x86)>diff "Microsoft Visual Studio 10.0\vc\crt\src\_file.c" "Microsoft Visual Studio 12.0\vc\crt\src\_file.c"
144,157d143
<         for ( i = 0 ; i < 3 ; i++ ) {
<             if ( (_osfhnd(i) == (intptr_t)INVALID_HANDLE_VALUE) ||
<                  (_osfhnd(i) == _NO_CONSOLE_FILENO) ||
<                  (_osfhnd(i) == 0) )
<             {
<             /*
<              * For stdin, stdout & stderr, we use _NO_CONSOLE_FILENO (a value
<              * different from _INVALID_HANDLE_VALUE to distinguish between
<              * a failure in opening a file & a program run without a console.
<              */
<                 _iob[i]._file = _NO_CONSOLE_FILENO;
<             }
<         }
<
194a181
>         __piob = NULL;


There's an open bug

http://connect.microsoft.com/VisualStudio/feedback/details/785119/

but as it was broken in 2012 and not fixed in 2013, it doesn't look like it's
going to be fixed. (The documentation still suggests that r178656 is correct:
http://msdn.microsoft.com/en-us/library/zs6wbdhx(v=vs.100).aspx vs
http://msdn.microsoft.com/en-us/library/zs6wbdhx(v=vs.120).aspx ) but that's
little consolation.

So, confirm that the underlying HANDLE is valid before aborting.

TBR=brettw@chromium.org
R=mseaborn@chromium.org
BUG=169941, 309197, 358267

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=260738

Review URL: https://codereview.chromium.org/219813003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261253 0039d316-1c4b-4281-b951-d872f2087c98
1 file changed