X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=fsck-cache.c;h=96b8eb161107cd3219975d93a44874a5455b702e;hb=23b127ed085cbe2f853ce63b53c732a7b9e6de74;hp=edaf9e46000197de66b2afb98a01358375b92e37;hpb=b51ad4314078298194d23d46e2b4473ffd32a88a;p=git.git diff --git a/fsck-cache.c b/fsck-cache.c index edaf9e46..96b8eb16 100644 --- a/fsck-cache.c +++ b/fsck-cache.c @@ -21,7 +21,7 @@ static void check_connectivity(void) struct object *obj = objs[i]; if (show_unreachable && !(obj->flags & REACHABLE)) { - printf("unreachable %s\n", sha1_to_hex(obj->sha1)); + printf("unreachable %s %s\n", obj->type, sha1_to_hex(obj->sha1)); continue; } @@ -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; } }