aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugh Dickins <[email protected]>2014-07-23 14:00:17 -0700
committerLinus Torvalds <[email protected]>2014-07-23 15:10:55 -0700
commit4e66d445d0421a159135572a0ba44b75c7c4adfa (patch)
treeedef8d8ebd021624dd89a0ed5f157d16e1156313
parent792ceaefe62189e3beea612ec0a052e42a81e993 (diff)
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 <[email protected]> Cc: Al Viro <[email protected]> Cc: Jeff Layton <[email protected]> Cc: Aristeu Rozanski <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
-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);