aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sand-leek.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/sand-leek.c b/sand-leek.c
index 66e1f0e..a5de3d0 100644
--- a/sand-leek.c
+++ b/sand-leek.c
@@ -177,7 +177,25 @@ work(void *arg) {
goto STOP;
}
- int raw_len = (search_len*10)/16;
+ int raw_len = 0;
+ switch (search_len) {
+ case 1: raw_len = 0; break;
+ case 2: raw_len = 1; break;
+ case 3: raw_len = 1; break;
+ case 4: raw_len = 2; break;
+ case 5: raw_len = 3; break;
+ case 6: raw_len = 3; break;
+ case 7: raw_len = 4; break;
+ case 8: raw_len = 5; break;
+ case 9: raw_len = 5; break;
+ case 10: raw_len = 6; break;
+ case 11: raw_len = 6; break;
+ case 12: raw_len = 7; break;
+ case 13: raw_len = 8; break;
+ case 14: raw_len = 8; break;
+ case 15: raw_len = 9; break;
+ case 16: raw_len = 10; break;
+ }
if (memcmp(sha, search_raw, raw_len) == 0) {
/* check the remaining partial byte */
switch (search_len) {