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>maint
							parent
							
								
									5a688fe470
								
							
						
					
					
						commit
						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,7 +834,7 @@ 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) { | ||||||
|  |  | ||||||
|  | @ -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)); | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Johan Herland
						Johan Herland