prefer git_pathdup to git_path in some possibly-dangerous cases
commitfcd12db6af118b70b5c15cf5fdd6800eeecc370a
authorJeff King <peff@peff.net>
Mon, 10 Aug 2015 09:35:31 +0000 (10 05:35 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 10 Aug 2015 22:37:12 +0000 (10 15:37 -0700)
tree8050bcc9515081c8a6a52285297fe23f0bf08916
parent77b9b1d13ac9e6b78ba676d4edb221b7d2273c62
prefer git_pathdup to git_path in some possibly-dangerous cases

Because git_path uses a static buffer that is shared with
calls to git_path, mkpath, etc, it can be dangerous to
assign the result to a variable or pass it to a non-trivial
function. The value may change unexpectedly due to other
calls.

None of the cases changed here has a known bug, but they're
worth converting away from git_path because:

  1. It's easy to use git_pathdup in these cases.

  2. They use constructs (like assignment) that make it
     hard to tell whether they're safe or not.

The extra malloc overhead should be trivial, as an
allocation should be an order of magnitude cheaper than a
system call (which we are clearly about to make, since we
are constructing a filename). The real cost is that we must
remember to free the result.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/fsck.c
fast-import.c
http-backend.c
notes-merge.c
refs.c
unpack-trees.c