Re: [PATCH RFC v2 16/21] nfs: nfs4xdr: introduce decode_verifier helper

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

 



On Fri, 2009-08-14 at 17:19 +0300, Benny Halevy wrote:
> Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx>
> ---
>  fs/nfs/nfs4xdr.c |   20 +++++++++++---------
>  1 files changed, 11 insertions(+), 9 deletions(-)
> 
> diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
> index 86e6983..b835dcc 100644
> --- a/fs/nfs/nfs4xdr.c
> +++ b/fs/nfs/nfs4xdr.c
> @@ -3320,17 +3320,19 @@ static int decode_close(struct xdr_stream *xdr, struct nfs_closeres *res)
>  	return status;
>  }
>  
> +static int decode_verifier(struct xdr_stream *xdr, void *verifier)
> +{
> +	return decode_opaque_fixed(xdr, verifier, 8);
> +}
> +
>  static int decode_commit(struct xdr_stream *xdr, struct nfs_writeres *res)
>  {
> -	__be32 *p;
>  	int status;
>  
>  	status = decode_op_hdr(xdr, OP_COMMIT);
> -	if (status)
> -		return status;
> -	READ_BUF(8);
> -	COPYMEM(res->verf->verifier, 8);
> -	return 0;
> +	if (!status)
> +		status = decode_verifier(xdr, res->verf->verifier);
> +	return status;
>  }
>  
>  static int decode_create(struct xdr_stream *xdr, struct nfs4_change_info *cinfo)
> @@ -3852,10 +3854,10 @@ static int decode_readdir(struct xdr_stream *xdr, struct rpc_rqst *req, struct n
>  	int		status;
>  
>  	status = decode_op_hdr(xdr, OP_READDIR);
> -	if (status)
> +	if (!status)
> +		status = decode_verifier(xdr, readdir->verifier.data);
> +	if (unlikely(status))
>  		return status;
> -	READ_BUF(8);
> -	COPYMEM(readdir->verifier.data, 8);
>  	dprintk("%s: verifier = %08x:%08x\n",
>  			__func__,
>  			((u32 *)readdir->verifier.data)[0],

This introduces an uninitialised variable warning into decode_readdir.
The fix would be to use xdr->p in the calculation of hdrlen.

I'll add that, no need to resend.
-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@xxxxxxxxxx
www.netapp.com
--
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