improve reliability of fixup_pack_header_footer()

Currently, this function has the potential to read corrupted pack data
from disk and give it a valid SHA1 checksum.  Let's add the ability to
validate SHA1 checksum of existing data along the way, including before
and after any arbitrary point in the pack.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Nicolas Pitre
2008-08-29 16:07:59 -04:00
committed by Junio C Hamano
parent 6ed7f25e95
commit abeb40e5aa
5 changed files with 66 additions and 16 deletions

View File

@ -493,7 +493,8 @@ static void write_pack_file(void)
sha1close(f, sha1, CSUM_FSYNC);
} else {
int fd = sha1close(f, NULL, 0);
fixup_pack_header_footer(fd, sha1, pack_tmp_name, nr_written);
fixup_pack_header_footer(fd, sha1, pack_tmp_name,
nr_written, NULL, 0);
close(fd);
}