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>
This commit is contained in:
Родитель
792ceaefe6
Коммит
4e66d445d0
|
@ -843,7 +843,7 @@ struct simple_xattr *simple_xattr_alloc(const void *value, size_t size)
|
||||||
|
|
||||||
/* wrap around? */
|
/* wrap around? */
|
||||||
len = sizeof(*new_xattr) + size;
|
len = sizeof(*new_xattr) + size;
|
||||||
if (len <= sizeof(*new_xattr))
|
if (len < sizeof(*new_xattr))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
new_xattr = kmalloc(len, GFP_KERNEL);
|
new_xattr = kmalloc(len, GFP_KERNEL);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче