Code

create_tempfile: make sure that leading directories can be accessible by peers
authorJunio C Hamano <gitster@pobox.com>
Tue, 17 Jun 2008 05:02:12 +0000 (22:02 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 17 Jun 2008 05:02:12 +0000 (22:02 -0700)
In a shared repository, we should make sure adjust_shared_perm() is called
after creating the initial fan-out directories under objects/ directory.

Earlier an logico called the function only when mkdir() failed; we should
do so when mkdir() succeeded.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
sha1_file.c

index 500584b6433d6827fee6099aee391caaa2aac800..e300562c158295e338e60e05ad02fa1a53c7a0a1 100644 (file)
@@ -116,7 +116,7 @@ int safe_create_leading_directories(char *path)
        return 0;
 }
 
-char * sha1_to_hex(const unsigned char *sha1)
+char *sha1_to_hex(const unsigned char *sha1)
 {
        static int bufno;
        static char hexbuffer[4][50];
@@ -2125,7 +2125,7 @@ static int create_tmpfile(char *buffer, size_t bufsiz, const char *filename)
        if (fd < 0 && dirlen) {
                /* Make sure the directory exists */
                buffer[dirlen-1] = 0;
-               if (mkdir(buffer, 0777) && adjust_shared_perm(buffer))
+               if (mkdir(buffer, 0777) || adjust_shared_perm(buffer))
                        return -1;
 
                /* Try again */