Re: [PATCH 09/10] nfsd: cap decoded POSIX ACL count to bound sort cost
From: Rick Macklem
Date: Fri May 29 2026 - 19:07:08 EST
On Fri, May 29, 2026 at 11:34 AM Chuck Lever <cel@xxxxxxxxxx> wrote:
>
> [ replaced broken email address for Trond ]
>
> On Thu, May 28, 2026, at 5:55 PM, Jeff Layton wrote:
>
> > diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
> > index c6c50c376b23..5469c6c207ba 100644
> > --- a/fs/nfsd/nfs4xdr.c
> > +++ b/fs/nfsd/nfs4xdr.c
> > @@ -448,6 +448,8 @@ nfsd4_decode_posixacl(struct nfsd4_compoundargs
> > *argp, struct posix_acl **acl)
> >
> > if (xdr_stream_decode_u32(argp->xdr, &count) < 0)
> > return nfserr_bad_xdr;
> > + if (count > NFS_ACL_MAX_ENTRIES)
> > + return nfserr_resource;
>
> nfserr_resource is consistent with other fattr4 decoders, but
> does not make sense here, IMO. A better choice is nfserr_inval.
>
> Rick, any opinion?
My understanding is the NFS4ERR_RESOURCE is a NFSv4.0 only
error.
Looking at Table 12 in RFC8881, NFS4ERR_INVAL seems the
best fit for SETATTR, although I didn't specify that in my draft.
(It's a bit unfortunate
that there is no other error values, since NFS4ERR_INVAL gets
used for everything else, but??)
Maybe I should add that to the draft?
rick
>
>
> > *acl = posix_acl_alloc(count, GFP_KERNEL);
> > if (*acl == NULL)
> >
> > --
> > 2.54.0
>
> --
> Chuck Lever
>