Hi Selvin, Can you please help your colleague to make the patch right? Thanks On Mon, Feb 26, 2018 at 01:06:02AM -0800, Muneendra wrote: > Null pointer check is missing in addr_resolve as > dev_get_by_index may return a NULL pointer. > And this patch will check whether ndev is NULL > and further access the same. > > The following tests are made. > > server client > --------- --------- > |1.1.1.1|<----rxe-channel--->|1.1.1.2| > --------- --------- > > On server: rdma_lat -c -n 2 -s 1024 > On client:rdma_lat 1.1.1.1 -c -n 2 -s 1024 > > Fixes: 200298326b27 ("IB/core: Validate route when we init ah") > On a side note, I am sending similar fix in ib_init_ah_attr_from_path() > which surfaces from same patch. > > Signed-off-by: Muneendra <muneendra.kumar@xxxxxxxxxxxx> > --- > drivers/infiniband/core/addr.c | 16 +++++----------- > 1 file changed, 5 insertions(+), 11 deletions(-) > > diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c > index a5b4cf0..e82344a 100644 > --- a/drivers/infiniband/core/addr.c > +++ b/drivers/infiniband/core/addr.c > @@ -550,19 +550,13 @@ static int addr_resolve(struct sockaddr *src_in, > dst_release(dst); > } > > - if (ndev->flags & IFF_LOOPBACK) { > - ret = rdma_translate_ip(dst_in, addr); > - /* > - * Put the loopback device and get the translated > - * device instead. > - */ > + if (ndev) { > + if (ndev->flags & IFF_LOOPBACK) > + ret = rdma_translate_ip(dst_in, addr); > + else > + addr->bound_dev_if = ndev->ifindex; > dev_put(ndev); > - ndev = dev_get_by_index(addr->net, addr->bound_dev_if); > - } else { > - addr->bound_dev_if = ndev->ifindex; > } > - dev_put(ndev); > - > return ret; > } > > -- > 1.8.3.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html
Attachment:
signature.asc
Description: PGP signature