Commit 51314960 authored by Trond Myklebust's avatar Trond Myklebust

SUNRPC: Fix the minimal size for reply buffer allocation

We must at minimum allocate enough memory to be able to see any auth
errors in the reply from the server.

Fixes: 2c94b8ec ("SUNRPC: Use au_rslack when computing reply...")
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent 9734ad57
...@@ -1730,7 +1730,12 @@ call_allocate(struct rpc_task *task) ...@@ -1730,7 +1730,12 @@ call_allocate(struct rpc_task *task)
req->rq_callsize = RPC_CALLHDRSIZE + (auth->au_cslack << 1) + req->rq_callsize = RPC_CALLHDRSIZE + (auth->au_cslack << 1) +
proc->p_arglen; proc->p_arglen;
req->rq_callsize <<= 2; req->rq_callsize <<= 2;
req->rq_rcvsize = RPC_REPHDRSIZE + auth->au_rslack + proc->p_replen; /*
* Note: the reply buffer must at minimum allocate enough space
* for the 'struct accepted_reply' from RFC5531.
*/
req->rq_rcvsize = RPC_REPHDRSIZE + auth->au_rslack + \
max_t(size_t, proc->p_replen, 2);
req->rq_rcvsize <<= 2; req->rq_rcvsize <<= 2;
status = xprt->ops->buf_alloc(task); status = xprt->ops->buf_alloc(task);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment