From: David Turner Date: Mon, 30 Nov 2015 22:47:42 +0000 (-0500) Subject: verify_pack: do not ignore return value of verification function X-Git-Tag: v2.7.0-rc0~5^2 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/8c24d832cdcc1602fb5c7e7295447f8043879bf7?hp=--cc verify_pack: do not ignore return value of verification function In verify_pack, a caller-supplied verification function is called. The function returns an int. If that return value is non-zero, verify_pack should fail. The only caller of verify_pack is in builtin/fsck.c, whose verify_fn returns a meaningful error code (which was then ignored). Now, fsck might return a different error code (with more detail). This would happen in the unlikely event that a commit or tree that is a valid git object but not a valid instance of its type gets into a pack. Signed-off-by: David Turner Signed-off-by: Jeff King --- 8c24d832cdcc1602fb5c7e7295447f8043879bf7 diff --git a/pack-check.c b/pack-check.c index 63a595c45c..433bd86ccd 100644 --- a/pack-check.c +++ b/pack-check.c @@ -126,7 +126,7 @@ static int verify_packfile(struct packed_git *p, sha1_to_hex(entries[i].sha1), p->pack_name); else if (fn) { int eaten = 0; - fn(entries[i].sha1, type, size, data, &eaten); + err |= fn(entries[i].sha1, type, size, data, &eaten); if (eaten) data = NULL; }