Commit 8c6b6c79 authored by J. Bruce Fields's avatar J. Bruce Fields Committed by Trond Myklebust
Browse files

SUNRPC: stop printk reading past end of string



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: default avatarZhi Li <yieli@redhat.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent 644c9f40
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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)