From b9bc8c7bdbbcba1a0d0b86d55f4730a060d4315a Mon Sep 17 00:00:00 2001 From: Richard Weinberger Date: Thu, 6 Oct 2016 22:04:58 +0200 Subject: [PATCH] ubifs: Make r5 hash binary string aware As of now all filenames known by UBIFS are strings with a NUL terminator. With encrypted filenames a filename can be any binary string and the r5 function cannot search for the NUL terminator. UBIFS always knows how long a filename is, therefore we can change the hash function to iterate over the filename length to work correctly with binary strings. Signed-off-by: Richard Weinberger --- fs/ubifs/key.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/ubifs/key.h b/fs/ubifs/key.h index c0a95e393347..ca4371fdfa7d 100644 --- a/fs/ubifs/key.h +++ b/fs/ubifs/key.h @@ -69,7 +69,7 @@ static inline uint32_t key_r5_hash(const char *s, int len) uint32_t a = 0; const signed char *str = (const signed char *)s; - while (*str) { + while (len--) { a += *str << 4; a += *str >> 4; a *= 11; -- 2.20.1