Re: [PATCH 1/2] kernfs: Add option to enable user xattrs

From: Daniel Xu
Date: Tue Mar 03 2020 - 14:20:04 EST


On Tue Mar 3, 2020 at 8:19 AM, Tejun Heo wrote:
> 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?

Ah yeah good point. Will add.