diff options
| author | Trond Myklebust <trond.myklebust@primarydata.com> | 2015-06-01 15:10:25 -0400 |
|---|---|---|
| committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2015-06-02 08:55:28 -0400 |
| commit | 88de6af24f2b48b06c514d3c3d0a8f22fafe30bd (patch) | |
| tree | 2262a29d3f000359db78e9eee63c644e251d88bb /net | |
| parent | 13985b1f77d09623f4114ce2d57e69a027ed9a09 (diff) | |
SUNRPC: Fix a memory leak in the backchannel code
req->rq_private_buf isn't initialised when xprt_setup_backchannel calls
xprt_free_allocation.
Fixes: fb7a0b9addbdb ("nfs41: New backchannel helper routines")
Cc: stable@vger.kernel.org
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'net')
| -rw-r--r-- | net/sunrpc/backchannel_rqst.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sunrpc/backchannel_rqst.c b/net/sunrpc/backchannel_rqst.c index 9dd0ea8db463..28504dfd3dad 100644 --- a/net/sunrpc/backchannel_rqst.c +++ b/net/sunrpc/backchannel_rqst.c | |||
| @@ -60,7 +60,7 @@ static void xprt_free_allocation(struct rpc_rqst *req) | |||
| 60 | 60 | ||
| 61 | dprintk("RPC: free allocations for req= %p\n", req); | 61 | dprintk("RPC: free allocations for req= %p\n", req); |
| 62 | WARN_ON_ONCE(test_bit(RPC_BC_PA_IN_USE, &req->rq_bc_pa_state)); | 62 | WARN_ON_ONCE(test_bit(RPC_BC_PA_IN_USE, &req->rq_bc_pa_state)); |
| 63 | xbufp = &req->rq_private_buf; | 63 | xbufp = &req->rq_rcv_buf; |
| 64 | free_page((unsigned long)xbufp->head[0].iov_base); | 64 | free_page((unsigned long)xbufp->head[0].iov_base); |
| 65 | xbufp = &req->rq_snd_buf; | 65 | xbufp = &req->rq_snd_buf; |
| 66 | free_page((unsigned long)xbufp->head[0].iov_base); | 66 | free_page((unsigned long)xbufp->head[0].iov_base); |
