Re: [PATCH] SUNRPC: stop printk reading past end of string

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

 




> On Sep 5, 2020, at 10:03 AM, bfields@xxxxxxxxxxxx wrote:
> 
> From: "J. Bruce Fields" <bfields@xxxxxxxxxx>
> 
> Since p points at raw xdr data, there's no guarantee that it's NULL
> terminated, so we should give a length.  And probably escape any special
> characters too.
> 
> Reported-by: Zhi Li <yieli@xxxxxxxxxx>
> Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>

I sent a patch a couple months ago to remove this dprintk:

https://lore.kernel.org/linux-nfs/20200708201029.22129.31971.stgit@xxxxxxxxxxxxxxxxxxxxx/T/#u

However you might want to apply Bruce's patch first, so it can
be backported to stable.


> ---
> net/sunrpc/rpcb_clnt.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c
> index c27123e6ba80..4a67685c83eb 100644
> --- a/net/sunrpc/rpcb_clnt.c
> +++ b/net/sunrpc/rpcb_clnt.c
> @@ -982,8 +982,8 @@ static int rpcb_dec_getaddr(struct rpc_rqst *req, struct xdr_stream *xdr,
> 	p = xdr_inline_decode(xdr, len);
> 	if (unlikely(p == NULL))
> 		goto out_fail;
> -	dprintk("RPC: %5u RPCB_%s reply: %s\n", req->rq_task->tk_pid,
> -			req->rq_task->tk_msg.rpc_proc->p_name, (char *)p);
> +	dprintk("RPC: %5u RPCB_%s reply: %*pE\n", req->rq_task->tk_pid,
> +			req->rq_task->tk_msg.rpc_proc->p_name, len, (char *)p);
> 
> 	if (rpc_uaddr2sockaddr(req->rq_xprt->xprt_net, (char *)p, len,
> 				sap, sizeof(address)) == 0)
> -- 
> 2.26.2
> 

--
Chuck Lever







[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