git: ensure 0/1/2 are open in main()
commita11c39646c14600d588ca55fcfe3c244b66047c7
authorThomas Rast <trast@inf.ethz.ch>
Tue, 16 Jul 2013 09:27:37 +0000 (16 11:27 +0200)
committerJunio C Hamano <gitster@pobox.com>
Wed, 17 Jul 2013 19:52:16 +0000 (17 12:52 -0700)
tree5c5a678b24661d57c5ab1890096cb35129d6862a
parent1d999ddd1daa6da2779d21b293ea9b275780bff8
git: ensure 0/1/2 are open in main()

Not having an open FD in the 0--2 range can lead to strange results,
for example, a subsequent open() may return 2 (stderr) and then a
die() would clobber this file.

git-daemon and git-shell already guarded against this, but apparently
users also manage to trip over it in other git commands.  So we call
sanitize_stdfds() during main git startup.

Since these FDs are inherited, this covers all use of 'git foo ...',
and all internal C commands when called directly.  It does not fix
shell/perl commands called directly.

Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git.c