diff options
author | Richard Weinberger <richard@nod.at> | 2016-10-06 22:04:58 +0200 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2016-12-12 23:07:38 +0100 |
commit | b9bc8c7bdbbcba1a0d0b86d55f4730a060d4315a (patch) | |
tree | c90b4739f9ad87d93dc6e601cf0fa2d112f7b5d6 /fs/ubifs | |
parent | ubifs: Relax checks in ubifs_validate_entry() (diff) | |
download | linux-b9bc8c7bdbbcba1a0d0b86d55f4730a060d4315a.tar.xz linux-b9bc8c7bdbbcba1a0d0b86d55f4730a060d4315a.zip |
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 <richard@nod.at>
Diffstat (limited to 'fs/ubifs')
-rw-r--r-- | fs/ubifs/key.h | 2 |
1 files changed, 1 insertions, 1 deletions
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; |