Skip to content
  • Jeff King's avatar
    update-server-info: create info/* with mode 0666 · d91175b2
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    Prior to d38379ec (make update-server-info more robust, 2014-09-13),
    we used a straight "fopen" to create the info/refs and
    objects/info/packs files, which creates the file using mode 0666
    (less the default umask).
    
    In d38379ec
    
    , we switched to creating the file with mkstemp to get a
    unique filename. But mkstemp also uses the more restrictive 0600
    mode to create the file. This was an unintended side effect that we
    did not want, and causes problems when the repository is served by a
    different user than the one running update-server-info (it is not
    readable by a dumb http server running as `www`, for example).
    
    We can fix this by using git_mkstemp_mode and specifying 0666 to
    make sure that the umask is honored.
    
    Note that we could also say "just use core.sharedrepository", as we
    do call adjust_shared_perm on the result before renaming it into
    place.  But that should not be necessary as long as everybody
    involved is using permissive umask to allow HTTP server to read
    necessary files.
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    d91175b2