Skip to content
  • Jeff King's avatar
    prefer git_pathdup to git_path in some possibly-dangerous cases · fcd12db6
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    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: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    fcd12db6