From: Johannes Sixt Date: Sun, 20 Nov 2011 09:27:26 GMT Subject: Re: [msysGit] Re: [PATCH 1/2] MSVC: Do not close stdout to prevent a crash Message-ID: <4EC8C7FE.5050903@kdbg.org> In-Reply-To: <7vpqgniid5.fsf@alter.siamese.dyndns.org> Am 20.11.2011 04:27, schrieb Junio C Hamano: > Andreas Schwab writes: > >> Junio C Hamano 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