diff options
Diffstat (limited to 'fsck-cache.c')
-rw-r--r-- | fsck-cache.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/fsck-cache.c b/fsck-cache.c index 952d41387a..96b8eb1611 100644 --- a/fsck-cache.c +++ b/fsck-cache.c @@ -85,12 +85,13 @@ static int fsck_name(char *hex) if (map) { char type[100]; unsigned long size; - void *buffer = NULL; - if (!check_sha1_signature(sha1, map, mapsize)) - buffer = unpack_sha1_file(map, mapsize, type, - &size); + void *buffer = unpack_sha1_file(map, mapsize, type, &size); + if (!buffer) + return -1; + if (check_sha1_signature(sha1, buffer, size, type) < 0) + printf("sha1 mismatch %s\n", sha1_to_hex(sha1)); munmap(map, mapsize); - if (buffer && !fsck_entry(sha1, type, buffer, size)) + if (!fsck_entry(sha1, type, buffer, size)) return 0; } } |