Skip to content
  • Jonathan Nieder's avatar
    setup: make sure git dir path is in a permanent buffer · 06f3549d
    Jonathan Nieder authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    If setup_git_env() is run before the usual repository discovery
    sequence and .git is a file with the text
    
    	gitdir: <path>
    
    (with <path> any string) then the in-core git_dir variable is set to
    the result of converting <path> to an absolute path using
    make_absolute_path().
    
    Unfortunately make_absolute_path() returns its result in a static
    buffer that is overwritten by later calls.  Such a call could cause
    later accesses to git_dir (from git_pathdup(), for example) to read
    the wrong path, leaving git very confused.
    
    It is not obvious whether any existing code in git will trigger the
    problem, but in any case, it is worth a few dozen bytes to copy the
    return value from make_absolute_path() for some added peace of mind.
    
    Signed-off-by: default avatarJonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    06f3549d