Am 19.11.2011 14:45, schrieb Vincent van Ravesteijn: > When compiled with MSVC, git crashes on Windows when calling > fstat(stdout) when stdout is closed. fstat is being called at the end of > run_builtin and this will thus be a problem for builtin command that close > stdout. This happens for 'format-patch' which closes stdout after a call to > freopen which directs stdout to the format patch file. This crash happens because of the some drainbramage in the MS's newer C runtime: Its functions never return EINVAL (like fstat should in this case), but it is assumed that cases where EINVAL should be returned are programming errors, and the application is redirected, via an "invalid agument handler" to abort() instead. (It is advertized as a security feature.) > To prevent the crash and to prevent git from writing cruft into the patch > file, we do not close stdout, but redirect it to "nul" instead. A more robust solution is to add invalidcontinue.obj to the linker command line. This installs an invalid argument handler that does not abort, and restores a sane behavior. -- Hannes -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html