Re: [PATCH] nfsd41: nfsd4_decode_compound() does not recognize all ops

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Dec 11, 2009 at 07:10:49PM -0800, Ricardo Labiaga wrote:
> The server incorrectly assumes that the operations in the
> array start with value 0.  The first operation (OP_ACCESS)
> has a value of 3, causing the check in nfsd4_decode_compound
> to be off.
> 
> Instead of comparing that the operation number is less than
> the number of elements in the array, the server should verify
> that it is less than the maximum valid operation number
> defined by LAST_NFS4_OP.

Thanks.  So the effect of this was to return an OP_ILLEGAL in some cases
where we should have been returning a NOTSUPP error?

--b.

> 
> Signed-off-by: Ricardo Labiaga <Ricardo.Labiaga@xxxxxxxxxx>
> ---
>  fs/nfsd/nfs4xdr.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
> index 0fbd50c..b83a24c 100644
> --- a/fs/nfsd/nfs4xdr.c
> +++ b/fs/nfsd/nfs4xdr.c
> @@ -1442,7 +1442,7 @@ nfsd4_decode_compound(struct nfsd4_compoundargs *argp)
>  		}
>  		op->opnum = ntohl(*argp->p++);
>  
> -		if (op->opnum >= OP_ACCESS && op->opnum < ops->nops)
> +		if (op->opnum >= OP_ACCESS && op->opnum <= LAST_NFS4_OP)
>  			op->status = ops->decoders[op->opnum](argp, &op->u);
>  		else {
>  			op->opnum = OP_ILLEGAL;
> -- 
> 1.5.4.3
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux