summaryrefslogtreecommitdiff
path: root/http-fetch.c
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2007-01-10 01:04:52 (GMT)
committerJunio C Hamano <junkio@cox.net>2007-01-10 01:54:25 (GMT)
commit1c23d794bfa3b9f3e03b18bb7e542615a924dbe3 (patch)
treefd04e34a716ecabee7eab283ffecb22f0b6fdee1 /http-fetch.c
parentcec21ca7cfd5d8fd19ea87e15f14dce6ee3b3859 (diff)
downloadgit-1c23d794bfa3b9f3e03b18bb7e542615a924dbe3.zip
git-1c23d794bfa3b9f3e03b18bb7e542615a924dbe3.tar.gz
git-1c23d794bfa3b9f3e03b18bb7e542615a924dbe3.tar.bz2
Don't die in git-http-fetch when fetching packs.
My sp/mmap changes to pack-check.c modified the function such that it expects packed_git.pack_size to be populated with the total bytecount of the packfile by the caller. But that isn't the case for packs obtained by git-http-fetch as pack_size was not initialized before being accessed. This caused verify_pack to think it had 2^32-21 bytes available when the downloaded pack perhaps was only 305 bytes in length. The use_pack function then later dies with "offset beyond end of packfile" when computing the overall file checksum. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'http-fetch.c')
-rw-r--r--http-fetch.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/http-fetch.c b/http-fetch.c
index fe8cd7b..67dfb0a 100644
--- a/http-fetch.c
+++ b/http-fetch.c
@@ -809,6 +809,7 @@ static int fetch_pack(struct alt_base *repo, unsigned char *sha1)
return error("Unable to start request");
}
+ target->pack_size = ftell(packfile);
fclose(packfile);
ret = move_temp_to_file(tmpfile, filename);