]> Kevux Git Server - rit/commitdiff
Move chmod(foo, 0444) into move_temp_to_file()
authorJohan Herland <johan@herland.net>
Thu, 26 Mar 2009 15:16:47 +0000 (16:16 +0100)
committerJunio C Hamano <gitster@pobox.com>
Sat, 28 Mar 2009 05:10:58 +0000 (22:10 -0700)
When writing out a loose object or a pack (index), move_temp_to_file() is
called to finalize the resulting file. These files (loose files and packs)
should all have permission mode 0444 (modulo adjust_shared_perm()).
Therefore, instead of doing chmod(foo, 0444) explicitly from each callsite
(or even forgetting to chmod() at all), do the chmod() call from within
move_temp_to_file().

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
fast-import.c
http-push.c
http-walker.c
index-pack.c
sha1_file.c

index 3748ddf..d5fc042 100644 (file)
@@ -902,9 +902,6 @@ static char *keep_pack(char *curr_index_name)
        static const char *keep_msg = "fast-import";
        int keep_fd;
 
-       chmod(pack_data->pack_name, 0444);
-       chmod(curr_index_name, 0444);
-
        keep_fd = odb_pack_keep(name, sizeof(name), pack_data->sha1);
        if (keep_fd < 0)
                die("cannot create keep file");
index 30d2d34..968b6b0 100644 (file)
@@ -748,7 +748,6 @@ static void finish_request(struct transfer_request *request)
                        aborted = 1;
                }
        } else if (request->state == RUN_FETCH_LOOSE) {
-               fchmod(request->local_fileno, 0444);
                close(request->local_fileno); request->local_fileno = -1;
 
                if (request->curl_result != CURLE_OK &&
index 0dbad3c..c5a3ea3 100644 (file)
@@ -231,7 +231,6 @@ static void finish_object_request(struct object_request *obj_req)
 {
        struct stat st;
 
-       fchmod(obj_req->local, 0444);
        close(obj_req->local); obj_req->local = -1;
 
        if (obj_req->http_code == 416) {
index 7fee872..5dfe03e 100644 (file)
@@ -823,8 +823,7 @@ static void final(const char *final_pack_name, const char *curr_pack_name,
                }
                if (move_temp_to_file(curr_pack_name, final_pack_name))
                        die("cannot store pack file");
-       }
-       if (from_stdin)
+       } else if (from_stdin)
                chmod(final_pack_name, 0444);
 
        if (final_index_name != curr_index_name) {
@@ -835,8 +834,8 @@ static void final(const char *final_pack_name, const char *curr_pack_name,
                }
                if (move_temp_to_file(curr_index_name, final_index_name))
                        die("cannot store index file");
-       }
-       chmod(final_index_name, 0444);
+       } else
+               chmod(final_index_name, 0444);
 
        if (!from_stdin) {
                printf("%s\n", sha1_to_hex(sha1));
index 45987bd..3bd20e7 100644 (file)
@@ -2279,7 +2279,7 @@ int move_temp_to_file(const char *tmpfile, const char *filename)
                /* FIXME!!! Collision check here ? */
        }
 
-       if (adjust_shared_perm(filename))
+       if (chmod(filename, 0444) || adjust_shared_perm(filename))
                return error("unable to set permission to '%s'", filename);
        return 0;
 }
@@ -2305,7 +2305,6 @@ static void close_sha1_file(int fd)
 {
        if (fsync_object_files)
                fsync_or_die(fd, "sha1 file");
-       fchmod(fd, 0444);
        if (close(fd) != 0)
                die("error when closing sha1 file (%s)", strerror(errno));
 }