From: Hugh Dickins Date: Wed, 23 Jul 2014 21:00:17 +0000 (-0700) Subject: simple_xattr: permit 0-size extended attributes X-Git-Tag: v4.9.8~6053^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4e66d445d0421a159135572a0ba44b75c7c4adfa;p=platform%2Fkernel%2Flinux-rpi3.git 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 Cc: Al Viro Cc: Jeff Layton Cc: Aristeu Rozanski Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/fs/xattr.c b/fs/xattr.c index 3377dff..c69e6d4 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);