diff options
author | René Scharfe <l.s.r@web.de> | 2014-10-01 17:02:37 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-10-01 13:32:19 -0700 |
commit | 0eb0fb889e2e7e063e7dd8cbee38af106aa195f6 (patch) | |
tree | e58599db7b1f213bed7556af99176d1fbc089cbb /sha1-lookup.c | |
parent | 38d905bf585999367a24fa27645ece6fe996d6f0 (diff) | |
download | git-0eb0fb889e2e7e063e7dd8cbee38af106aa195f6.tar.gz git-0eb0fb889e2e7e063e7dd8cbee38af106aa195f6.tar.xz |
sha1-lookup: handle duplicates in sha1_pos()
If the first 18 bytes of the SHA1's of all entries are the same then
sha1_pos() dies and reports that the lower and upper limits of the
binary search were the same that this wasn't supposed to happen. This
is wrong because the remaining two bytes could still differ.
Furthermore: It wouldn't be a problem if they actually were the same,
i.e. if all entries have the same SHA1. The code already handles
duplicates just fine. Simply remove the erroneous check.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'sha1-lookup.c')
-rw-r--r-- | sha1-lookup.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/sha1-lookup.c b/sha1-lookup.c index 2dd851598..5f069214d 100644 --- a/sha1-lookup.c +++ b/sha1-lookup.c @@ -84,8 +84,6 @@ int sha1_pos(const unsigned char *sha1, void *table, size_t nr, die("BUG: assertion failed in binary search"); } } - if (18 <= ofs) - die("cannot happen -- lo and hi are identical"); } do { |