lkml.org 
[lkml]   [2019]   [Jul]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] rpcrdma_decode_msg: check xdr_inline_decode result
From
Date


> On Jul 23, 2019, at 9:51 PM, Navid Emamdoost <navid.emamdoost@gmail.com> wrote:
>
> xdr_inline_decode may return NULL, so the check is necessary. The base
> pointer will be dereferenced later in rpcrdma_inline_fixup.

NACK. When xdr_inline_decode is passed a zero “length” argument, it can never return NULL.


> Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
> ---
> net/sunrpc/xprtrdma/rpc_rdma.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/net/sunrpc/xprtrdma/rpc_rdma.c b/net/sunrpc/xprtrdma/rpc_rdma.c
> index 4345e6912392..d0479efe0e72 100644
> --- a/net/sunrpc/xprtrdma/rpc_rdma.c
> +++ b/net/sunrpc/xprtrdma/rpc_rdma.c
> @@ -1160,6 +1160,9 @@ rpcrdma_decode_msg(struct rpcrdma_xprt *r_xprt, struct rpcrdma_rep *rep,
>
> /* Build the RPC reply's Payload stream in rqst->rq_rcv_buf */
> base = (char *)xdr_inline_decode(xdr, 0);
> + if (!base)
> + return -EIO;
> +
> rpclen = xdr_stream_remaining(xdr);
> r_xprt->rx_stats.fixup_copy_count +=
> rpcrdma_inline_fixup(rqst, base, rpclen, writelist & 3);
> --
> 2.17.1
>

\
 
 \ /
  Last update: 2019-07-24 04:05    [W:1.359 / U:0.024 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site