Commit 59fb3066 authored by Christian Engelmayer's avatar Christian Engelmayer Committed by J. Bruce Fields

sunrpc: potential memory leak in function rdma_read_xdr

In case the check on ch_count fails the cleanup path is skipped and the
previously allocated memory 'rpl_map', 'chl_map' is not freed.

Reported by Coverity.
Signed-off-by: default avatarChristian Engelmayer <christian.engelmayer@frequentis.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
parent e4636d53
...@@ -397,14 +397,14 @@ static int rdma_read_xdr(struct svcxprt_rdma *xprt, ...@@ -397,14 +397,14 @@ static int rdma_read_xdr(struct svcxprt_rdma *xprt,
if (!ch) if (!ch)
return 0; return 0;
/* Allocate temporary reply and chunk maps */
rpl_map = svc_rdma_get_req_map();
chl_map = svc_rdma_get_req_map();
svc_rdma_rcl_chunk_counts(ch, &ch_count, &byte_count); svc_rdma_rcl_chunk_counts(ch, &ch_count, &byte_count);
if (ch_count > RPCSVC_MAXPAGES) if (ch_count > RPCSVC_MAXPAGES)
return -EINVAL; return -EINVAL;
/* Allocate temporary reply and chunk maps */
rpl_map = svc_rdma_get_req_map();
chl_map = svc_rdma_get_req_map();
if (!xprt->sc_frmr_pg_list_len) if (!xprt->sc_frmr_pg_list_len)
sge_count = map_read_chunks(xprt, rqstp, hdr_ctxt, rmsgp, sge_count = map_read_chunks(xprt, rqstp, hdr_ctxt, rmsgp,
rpl_map, chl_map, ch_count, rpl_map, chl_map, ch_count,
......
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