Subject: Re: [PATCH 1/2] MSVC: Do not close stdout to prevent a crash

From: Andreas Schwab <[email-masked]>
Date: Sun, 20 Nov 2011 10:05:53 +0100

Junio C Hamano <[email-masked]> writes:

> Andreas Schwab <[email-masked]> writes:
>
>> Junio C Hamano <[email-masked]> writes:
>>
>>> We have relied on fstat(-1, &st) to correctly error out, and if MSVC build
>>> crashes, it is a bug in its fstat() emulation, I would think.
>>
>> fileno(stdout) is alread wrong if stdout was closed.
>
> The "-1" in my message comes from here:
>
>     DESCRIPTION
>
>     The fileno() function shall return the integer file descriptor
>     associated with the stream pointed to by stream.

After fclose(stdout) the stream does not exist any more.  Thus the use
of fileno(stdout) is undefined, in fact *any* use of stdout is undefined
afterwards.

Andreas.

-- 
Andreas Schwab, [email-masked]
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."