fsck: check rev-index checksums
The previous change added calls to verify_pack_revindex() in builtin/fsck.c, but the implementation of the method was left empty. Add the first and most-obvious check to this method: checksum verification. While here, create a helper method in the test script that makes it easy to adjust the .rev file and check that 'git fsck' reports the correct error message. Signed-off-by: Derrick Stolee <derrickstolee@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
0d30feef3c
commit
d975fe1fa5
@@ -5,6 +5,7 @@
|
||||
#include "packfile.h"
|
||||
#include "config.h"
|
||||
#include "midx.h"
|
||||
#include "csum-file.h"
|
||||
|
||||
struct revindex_entry {
|
||||
off_t offset;
|
||||
@@ -309,6 +310,15 @@ int load_pack_revindex(struct repository *r, struct packed_git *p)
|
||||
*/
|
||||
int verify_pack_revindex(struct packed_git *p)
|
||||
{
|
||||
/* Do not bother checking if not initialized. */
|
||||
if (!p->revindex_map)
|
||||
return 0;
|
||||
|
||||
if (!hashfile_checksum_valid((const unsigned char *)p->revindex_map, p->revindex_size)) {
|
||||
error(_("invalid checksum"));
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user