summaryrefslogtreecommitdiffstats
path: root/fs/xattr.c
diff options
context:
space:
mode:
authorHugh Dickins <hughd@google.com>2014-07-23 23:00:17 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2014-07-24 00:10:55 +0200
commit4e66d445d0421a159135572a0ba44b75c7c4adfa (patch)
treeedef8d8ebd021624dd89a0ed5f157d16e1156313 /fs/xattr.c
parentmm/fs: fix pessimization in hole-punching pagecache (diff)
downloadlinux-4e66d445d0421a159135572a0ba44b75c7c4adfa.tar.xz
linux-4e66d445d0421a159135572a0ba44b75c7c4adfa.zip
simple_xattr: permit 0-size extended attributes
If a filesystem uses simple_xattr to support user extended attributes, LTP setxattr01 and xfstests generic/062 fail with "Cannot allocate memory": simple_xattr_alloc()'s wrap-around test mistakenly excludes values of zero size. Fix that off-by-one (but apparently no filesystem needs them yet). Signed-off-by: Hugh Dickins <hughd@google.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Jeff Layton <jlayton@poochiereds.net> Cc: Aristeu Rozanski <aris@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/xattr.c')
-rw-r--r--fs/xattr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/xattr.c b/fs/xattr.c
index 3377dff18404..c69e6d43a0d2 100644
--- a/fs/xattr.c
+++ b/fs/xattr.c
@@ -843,7 +843,7 @@ struct simple_xattr *simple_xattr_alloc(const void *value, size_t size)
/* wrap around? */
len = sizeof(*new_xattr) + size;
- if (len <= sizeof(*new_xattr))
+ if (len < sizeof(*new_xattr))
return NULL;
new_xattr = kmalloc(len, GFP_KERNEL);