From: Richard Weinberger Date: Thu, 6 Oct 2016 20:04:58 +0000 (+0200) Subject: ubifs: Make r5 hash binary string aware X-Git-Tag: v4.10-rc1~91^2~11 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=b9bc8c7bdbbcba1a0d0b86d55f4730a060d4315a;p=linux-block.git 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 --- 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;