Skip to content
  • Jeff King's avatar
    init: use strbufs to store paths · 9c28390b
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    The init code predates strbufs, and uses PATH_MAX-sized
    buffers along with many manual checks on intermediate sizes
    (some of which make magic assumptions, such as that init
    will not create a path inside .git longer than 50
    characters).
    
    We can simplify this greatly by using strbufs, which drops
    some hard-to-verify strcpy calls in favor of git_path_buf.
    While we're in the area, let's also convert existing calls
    to git_path to the safer git_path_buf (our existing calls
    were passed to pretty tame functions, and so were not a
    problem, but it's easy to be consistent and safe here).
    
    Note that we had an explicit test that "git init" rejects
    long template directories. This comes from 32d1776b
    
     (init: Do
    not segfault on big GIT_TEMPLATE_DIR environment variable,
    2009-04-18). We can drop the test_must_fail here, as we now
    accept this and need only confirm that we don't segfault,
    which was the original point of the test.
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    9c28390b