Re: [PATCH] ib_isert: prevent NULL pointer dereference in isert_login_recv_done()

From: Nicholas A. Bellinger
Date: Fri Jun 30 2017 - 01:53:26 EST


On Thu, 2017-06-29 at 11:28 +0300, Sagi Grimberg wrote:
> >> Can you test just the one liner fix below?
> >>
> >>>> @@ -1452,7 +1452,7 @@
> >>>> isert_login_recv_done(struct ib_cq *cq, struct ib_wc *wc)
> >>>> {
> >>>> struct isert_conn *isert_conn = wc->qp->qp_context;
> >>>> - struct ib_device *ib_dev = isert_conn->cm_id->device;
> >>>> + struct ib_device *ib_dev = isert_conn->device->ib_device;
> >>>> if (unlikely(wc->status != IB_WC_SUCCESS)) {
> >>>> isert_print_wc(wc, "login recv");
> >
> > I'll test also this one-liner fix as soon as I can.
> >
> > But I can say that I'm pretty sure it will work as well, because all the
> > previous NULL pointer dereferences that we've got in the past happened
> > all 100% in isert_login_recv_done(). The other cases are probably a safe
> > precaution, but they can't really happen.
>
> Agree, I'd prefer to start with a surgical fix before moving forward.

Sounds fine. The single line fix above in isert_login_recv_done() has
been queued up in target-pending/for-next with Andrea's Tested-by and
your Reviewed-by:

https://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending.git/commit/?h=for-next&id=702c0f17403765cc5aa1c18f6ea6eb549c1bac9b

Please let me know if there are any other issues wrt the surgical fix.