From 4e25336922485a918e2f8bf84cd1a82f10c78351 Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Sun, 24 Mar 2013 20:39:00 +0100 Subject: do not fail digest computation that often --- fuzzy.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fuzzy.c b/fuzzy.c index 19ba00b..c82d3c1 100644 --- a/fuzzy.c +++ b/fuzzy.c @@ -222,11 +222,13 @@ int fuzzy_digest(const struct fuzzy_state *self, /*@out@*/ char *result) { /* Initial blocksize guess. */ while((size_t)SSDEEP_BS(bi) * SPAMSUM_LENGTH < self->total_size) { ++bi; - if(bi >= self->bhend) + if(bi >= SSDEEP_BS(NUM_BLOCKHASHES)) /* The input exceeds data types. */ return -1; } /* Adapt blocksize guess to actual digest length. */ + while(bi >= self->bhend) + --bi; while(bi > self->bhstart && self->bh[bi].dlen < SPAMSUM_LENGTH / 2) --bi; assert(!(bi > 0 && self->bh[bi].dlen < SPAMSUM_LENGTH / 2)); -- cgit v1.2.3