Hello, On Mon, Mar 02, 2020 at 05:39:00PM -0800, Daniel Xu wrote: > +static int kernfs_vfs_user_xattr_set(const struct xattr_handler *handler, > + struct dentry *unused, struct inode *inode, > + const char *suffix, const void *value, > + size_t size, int flags) > +{ ... > + if (value && atomic_inc_return(nr) > KERNFS_MAX_USER_XATTRS) { > + ret = -ENOSPC; > + goto dec_out; > + } So, we limit the number of user xattrs here but > + ret = kernfs_vfs_xattr_set(handler, unused, inode, suffix, value, > + size, flags); This will call into simple_xattr_set() which doesn't put any further restriction on size and just calls GFP_KERNEL kmalloc on it allowing users incur high-order allocations. Maybe it'd make sense to limit both the number and size? Thanks. -- tejun