diff options
Diffstat (limited to 'service/src/util.c')
| -rw-r--r-- | service/src/util.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/service/src/util.c b/service/src/util.c index cb97816..946bc19 100644 --- a/service/src/util.c +++ b/service/src/util.c @@ -46,27 +46,27 @@ const char* mhash(const char *filename, int len) { static const char *hexalph = "0123456789ABCDEF"; - static char buf[33]; + static char buf[MHASHLEN + 1]; int i, k; if (len == -1) len = strlen(filename); - for (i = 0; i < MIN(32, len); i++) { + for (i = 0; i < MIN(MHASHLEN, len); i++) { unsigned char v = 0; - for (k = i; k < len; k += 32) + for (k = i; k < len; k += MHASHLEN) v ^= filename[k]; buf[i*2+0] = hexalph[(v >> 0) & 0x0f]; buf[i*2+1] = hexalph[(v >> 4) & 0x0f]; } if (i == 0) { - memset(buf, '0', 32); - } else if (i < 32) { - for (k = 0; k < 32; k++) + memset(buf, '0', MHASHLEN); + } else if (i < MHASHLEN) { + for (k = 0; k < MHASHLEN; k++) buf[k] = buf[k % i]; } - buf[32] = '\0'; + buf[MHASHLEN] = '\0'; return buf; } |
