]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ubifs: Make r5 hash binary string aware
authorRichard Weinberger <richard@nod.at>
Thu, 6 Oct 2016 20:04:58 +0000 (22:04 +0200)
committerRichard Weinberger <richard@nod.at>
Mon, 12 Dec 2016 22:07:38 +0000 (23:07 +0100)
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 <richard@nod.at>
fs/ubifs/key.h

index c0a95e393347c4199dbc2057cb838a3b4a4a4ef3..ca4371fdfa7d4607edd5f7cec50a37aeef7c39ad 100644 (file)
@@ -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;