Re: [PATCH] scsi: libfc: fix null pointer dereference on a null lport

From: Julia Lawall
Date: Fri Jul 12 2019 - 06:44:03 EST




On Fri, 12 Jul 2019, Hannes Reinecke wrote:

> On 7/2/19 11:18 AM, Colin King wrote:
> > From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
> >
> > Currently if lport is null then the null lport pointer is dereference
> > when printing out debug via the FC_LPORT_DB macro. Fix this by using
> > the more generic FC_LIBFC_DBG debug macro instead that does not use
> > lport.
> >
> > Addresses-Coverity: ("Dereference after null check")
> > Fixes: 7414705ea4ae ("libfc: Add runtime debugging with debug_logging module parameter")
> > Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
> > ---
> > drivers/scsi/libfc/fc_exch.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
> > index 025cd2ff9f65..c477fadbf504 100644
> > --- a/drivers/scsi/libfc/fc_exch.c
> > +++ b/drivers/scsi/libfc/fc_exch.c
> > @@ -2591,8 +2591,8 @@ void fc_exch_recv(struct fc_lport *lport, struct fc_frame *fp)
> >
> > /* lport lock ? */
> > if (!lport || lport->state == LPORT_ST_DISABLED) {
> > - FC_LPORT_DBG(lport, "Receiving frames for an lport that "
> > - "has not been initialized correctly\n");
> > + FC_LIBFC_DBG("Receiving frames for an lport that "
> > + "has not been initialized correctly\n");

If the code is being changed, perhaps the string could be put onto one
line as well.

julia

> > fc_frame_free(fp);
> > return;
> > }
> >
> Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>
>
> Cheers,
>
> Hannes
> --
> Dr. Hannes Reinecke Teamlead Storage & Networking
> hare@xxxxxxx +49 911 74053 688
> SUSE LINUX GmbH, Maxfeldstr. 5, 90409 NÃrnberg
> GF: Felix ImendÃrffer, Mary Higgins, Sri Rasiah
> HRB 21284 (AG NÃrnberg)
>