зеркало из https://github.com/microsoft/git.git
verify-pack: check integrity in a saner order.
Check internal integrity to report corrupt pack or idx, and then check cross-integrity between idx and pack. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
5981e09999
Коммит
55e1805dff
|
@ -29,12 +29,12 @@ static int verify_packfile(struct packed_git *p)
|
|||
pack_base = p->pack_base;
|
||||
SHA1_Update(&ctx, pack_base, pack_size - 20);
|
||||
SHA1_Final(sha1, &ctx);
|
||||
if (memcmp(sha1, index_base + index_size - 40, 20))
|
||||
return error("Packfile %s SHA1 mismatch with idx",
|
||||
p->pack_name);
|
||||
if (memcmp(sha1, pack_base + pack_size - 20, 20))
|
||||
return error("Packfile %s SHA1 mismatch with itself",
|
||||
p->pack_name);
|
||||
if (memcmp(sha1, index_base + index_size - 40, 20))
|
||||
return error("Packfile %s SHA1 mismatch with idx",
|
||||
p->pack_name);
|
||||
|
||||
/* Make sure everything reachable from idx is valid. Since we
|
||||
* have verified that nr_objects matches between idx and pack,
|
||||
|
|
Загрузка…
Ссылка в новой задаче