зеркало из https://github.com/microsoft/git.git
Move chmod(foo, 0444) into move_temp_to_file()
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>
This commit is contained in:
Родитель
5a688fe470
Коммит
fb8b193670
|
@ -902,9 +902,6 @@ static char *keep_pack(char *curr_index_name)
|
||||||
static const char *keep_msg = "fast-import";
|
static const char *keep_msg = "fast-import";
|
||||||
int keep_fd;
|
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);
|
keep_fd = odb_pack_keep(name, sizeof(name), pack_data->sha1);
|
||||||
if (keep_fd < 0)
|
if (keep_fd < 0)
|
||||||
die("cannot create keep file");
|
die("cannot create keep file");
|
||||||
|
|
|
@ -748,7 +748,6 @@ static void finish_request(struct transfer_request *request)
|
||||||
aborted = 1;
|
aborted = 1;
|
||||||
}
|
}
|
||||||
} else if (request->state == RUN_FETCH_LOOSE) {
|
} else if (request->state == RUN_FETCH_LOOSE) {
|
||||||
fchmod(request->local_fileno, 0444);
|
|
||||||
close(request->local_fileno); request->local_fileno = -1;
|
close(request->local_fileno); request->local_fileno = -1;
|
||||||
|
|
||||||
if (request->curl_result != CURLE_OK &&
|
if (request->curl_result != CURLE_OK &&
|
||||||
|
|
|
@ -231,7 +231,6 @@ static void finish_object_request(struct object_request *obj_req)
|
||||||
{
|
{
|
||||||
struct stat st;
|
struct stat st;
|
||||||
|
|
||||||
fchmod(obj_req->local, 0444);
|
|
||||||
close(obj_req->local); obj_req->local = -1;
|
close(obj_req->local); obj_req->local = -1;
|
||||||
|
|
||||||
if (obj_req->http_code == 416) {
|
if (obj_req->http_code == 416) {
|
||||||
|
|
|
@ -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))
|
if (move_temp_to_file(curr_pack_name, final_pack_name))
|
||||||
die("cannot store pack file");
|
die("cannot store pack file");
|
||||||
}
|
} else if (from_stdin)
|
||||||
if (from_stdin)
|
|
||||||
chmod(final_pack_name, 0444);
|
chmod(final_pack_name, 0444);
|
||||||
|
|
||||||
if (final_index_name != curr_index_name) {
|
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))
|
if (move_temp_to_file(curr_index_name, final_index_name))
|
||||||
die("cannot store index file");
|
die("cannot store index file");
|
||||||
}
|
} else
|
||||||
chmod(final_index_name, 0444);
|
chmod(final_index_name, 0444);
|
||||||
|
|
||||||
if (!from_stdin) {
|
if (!from_stdin) {
|
||||||
printf("%s\n", sha1_to_hex(sha1));
|
printf("%s\n", sha1_to_hex(sha1));
|
||||||
|
|
|
@ -2279,7 +2279,7 @@ int move_temp_to_file(const char *tmpfile, const char *filename)
|
||||||
/* FIXME!!! Collision check here ? */
|
/* 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 error("unable to set permission to '%s'", filename);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2305,7 +2305,6 @@ static void close_sha1_file(int fd)
|
||||||
{
|
{
|
||||||
if (fsync_object_files)
|
if (fsync_object_files)
|
||||||
fsync_or_die(fd, "sha1 file");
|
fsync_or_die(fd, "sha1 file");
|
||||||
fchmod(fd, 0444);
|
|
||||||
if (close(fd) != 0)
|
if (close(fd) != 0)
|
||||||
die("error when closing sha1 file (%s)", strerror(errno));
|
die("error when closing sha1 file (%s)", strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче