2019-07-02 09:19:15

by Colin King

[permalink] [raw]
Subject: [PATCH] scsi: libfc: fix null pointer dereference on a null lport

From: Colin Ian King <[email protected]>

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 <[email protected]>
---
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");
fc_frame_free(fp);
return;
}
--
2.20.1


2019-07-12 01:49:52

by Martin K. Petersen

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


Hannes,

Please review!

> 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.

--
Martin K. Petersen Oracle Linux Engineering

2019-07-12 06:36:48

by Hannes Reinecke

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

On 7/2/19 11:18 AM, Colin King wrote:
> From: Colin Ian King <[email protected]>
>
> 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 <[email protected]>
> ---
> 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");
> fc_frame_free(fp);
> return;
> }
>
Reviewed-by: Hannes Reinecke <[email protected]>

Cheers,

Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
[email protected] +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)

2019-07-12 10:44:33

by Julia Lawall

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



On Fri, 12 Jul 2019, Hannes Reinecke wrote:

> On 7/2/19 11:18 AM, Colin King wrote:
> > From: Colin Ian King <[email protected]>
> >
> > 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 <[email protected]>
> > ---
> > 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 <[email protected]>
>
> Cheers,
>
> Hannes
> --
> Dr. Hannes Reinecke Teamlead Storage & Networking
> [email protected] +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)
>

2019-07-17 02:34:00

by Martin K. Petersen

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


Colin,

> 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.

Applied to 5.3/scsi-fixes, thanks!

--
Martin K. Petersen Oracle Linux Engineering