fs/xattr.c: suppress page allocation failure warnings from sys_listxattr()
authorDave Jones <[email protected]>
Thu, 5 Apr 2012 21:25:06 +0000 (14:25 -0700)
committerLinus Torvalds <[email protected]>
Thu, 5 Apr 2012 22:25:50 +0000 (15:25 -0700)
This size is user controllable, up to a maximum of XATTR_LIST_MAX (64k).
So it's trivial for someone to trigger a stream of order:4 page
allocation errors.

Signed-off-by: Dave Jones <[email protected]>
Cc: Al Viro <[email protected]>
Cc: Dave Chinner <[email protected]>
Acked-by: David Rientjes <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
fs/xattr.c

index d6dfd247bb2f4425fdfbd9c57b892a07c3922847..a14d842ccb217f86e675bc761d512e13219cba28 100644 (file)
@@ -496,7 +496,7 @@ listxattr(struct dentry *d, char __user *list, size_t size)
        if (size) {
                if (size > XATTR_LIST_MAX)
                        size = XATTR_LIST_MAX;
-               klist = kmalloc(size, GFP_KERNEL);
+               klist = kmalloc(size, __GFP_NOWARN | GFP_KERNEL);
                if (!klist)
                        return -ENOMEM;
        }