summaryrefslogtreecommitdiff
path: root/fs/kernfs/dir.c
diff options
context:
space:
mode:
authorRichard Cochran <richardcochran@gmail.com>2014-03-05 20:10:52 +0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-03-09 10:08:29 +0400
commit88391d49abb7d8dee91d405f96bd9e003cb6798d (patch)
tree6e41448eb4131efd1708ebf674380b218ef2e24d /fs/kernfs/dir.c
parent13df7977431e3b906a23bb75f29e0f40a8d73f87 (diff)
downloadlinux-88391d49abb7d8dee91d405f96bd9e003cb6798d.tar.xz
kernfs: fix off by one error.
The hash values 0 and 1 are reserved for magic directory entries, but the code only prevents names hashing to 0. This patch fixes the test to also prevent hash value 1. Signed-off-by: Richard Cochran <richardcochran@gmail.com> Cc: <stable@vger.kernel.org> Reviewed-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/kernfs/dir.c')
-rw-r--r--fs/kernfs/dir.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
index 8245d3b34894..0bd05ab26003 100644
--- a/fs/kernfs/dir.c
+++ b/fs/kernfs/dir.c
@@ -190,7 +190,7 @@ static unsigned int kernfs_name_hash(const char *name, const void *ns)
hash = (end_name_hash(hash) ^ hash_ptr((void *)ns, 31));
hash &= 0x7fffffffU;
/* Reserve hash numbers 0, 1 and INT_MAX for magic directory entries */
- if (hash < 1)
+ if (hash < 2)
hash += 2;
if (hash >= INT_MAX)
hash = INT_MAX - 1;