summaryrefslogtreecommitdiff
path: root/cache.h
diff options
context:
space:
mode:
authorLibravatar Jeff King <peff@peff.net>2016-07-01 02:06:02 -0400
committerLibravatar Junio C Hamano <gitster@pobox.com>2016-07-01 15:09:10 -0700
commit57f5d52a942e8bbfa82e2741faf050de0d6b3eb3 (patch)
tree01e59edce0ed0b96a8bcc275f21bc04a1db4bb34 /cache.h
parentcommon-main: call git_extract_argv0_path() (diff)
downloadtgif-57f5d52a942e8bbfa82e2741faf050de0d6b3eb3.tar.xz
common-main: call sanitize_stdfds()
This is setup that should be done in every program for safety, but we never got around to adding it everywhere (so builtins benefited from the call in git.c, but any external commands did not). Putting it in the common main() gives us this safety everywhere. Note that the case in daemon.c is a little funny. We wait until we know whether we want to daemonize, and then either: - call daemonize(), which will close stdio and reopen it to /dev/null under the hood - sanitize_stdfds(), to fix up any odd cases But that is way too late; the point of sanitizing is to give us reliable descriptors on 0/1/2, and we will already have executed code, possibly called die(), etc. The sanitizing should be the very first thing that happens. With this patch, git-daemon will sanitize first, and can remove the call in the non-daemonize case. It does mean that daemonize() may just end up closing the descriptors we opened, but that's not a big deal (it's not wrong to do so, nor is it really less optimal than the case where our parent process redirected us from /dev/null ahead of time). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'cache.h')
0 files changed, 0 insertions, 0 deletions