aboutsummaryrefslogtreecommitdiff
path: root/mktree.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-08-13 12:41:14 -0700
committerJunio C Hamano <gitster@pobox.com>2009-08-14 00:52:08 -0700
commit9a217391e931763d168d177decfe5e962d306bac (patch)
tree8e01ee3af4f2159667b1488a6f54c5eccab6a279 /mktree.c
parent57f6ec029090f64377ec5c0926b6e2e39b0caa4f (diff)
downloadgit-9a217391e931763d168d177decfe5e962d306bac.tar.gz
git-9a217391e931763d168d177decfe5e962d306bac.tar.xz
Fix "unpack-objects --strict"
When unpack-objects is run under the --strict option, objects that have pointers to other objects are verified for the reachability at the end, by calling check_object() on each of them, and letting check_object to walk the reachable objects from them using fsck_walk() recursively. The function however misunderstands the semantics of fsck_walk() function when it makes a call to it, setting itself as the callback. fsck_walk() expects the callback function to return a non-zero value to signal an error (negative value causes an immediate abort, positive value is still an error but allows further checks on sibling objects) and return zero to signal a success. The function however returned 1 on some non error cases, and to cover up this mistake, complained only when fsck_walk() did not detect any error. To fix this double-bug, make the function return zero on all success cases, and also check for non-zero return from fsck_walk() for an error. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'mktree.c')
0 files changed, 0 insertions, 0 deletions