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

From: Johannes Sixt <[email-masked]>
Date: Sun, 20 Nov 2011 10:27:26 +0100

Am 20.11.2011 04:27, schrieb Junio C Hamano:
> 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.
> 
>     RETURN VALUE
> 
>     Upon successful completion, fileno() shall return the integer value of
>     the file descriptor associated with stream. Otherwise, the value -1
>     shall be returned and errno set to indicate the error.

But in the description of fclose() there is also:

  After the call to fclose(), any use of stream results in undefined
  behavior.

And we do call fclose(stdout) in cmd_format_patch.

-- Hannes