Message ID | 20200627133242.21618-1-trix@redhat.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | 5aee52c44d9170591df65fafa1cd408acc1225ce |
Headers | show |
Series | scsi: scsi_transport_spi: fix function pointer check. | expand |
On Sat, 2020-06-27 at 06:32 -0700, trix@redhat.com wrote: > From: Tom Rix <trix@redhat.com> > > clang static analysis flags several null function pointer problems. > > drivers/scsi/scsi_transport_spi.c:374:1: warning: Called function > pointer is null (null dereference) [core.CallAndMessage] > spi_transport_max_attr(offset, "%d\n"); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Reviewing the store_spi_store_max macro > > if (i->f->set_##field) > return -EINVAL; > > should be > > if (!i->f->set_##field) > return -EINVAL; > > Signed-off-by: Tom Rix <trix@redhat.com> Fixes: 9b161a4d3e83 "[SCSI] scsi_transport_spi: convert to attribute groups") Gosh that's an old bug ... clearly no-one is manually setting width or offset. Reviewed-by: James Bottomley <jejb@linux.ibm.com> James > --- > drivers/scsi/scsi_transport_spi.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/scsi/scsi_transport_spi.c > b/drivers/scsi/scsi_transport_spi.c > index f8661062ef95..f3d5b1bbd5aa 100644 > --- a/drivers/scsi/scsi_transport_spi.c > +++ b/drivers/scsi/scsi_transport_spi.c > @@ -339,7 +339,7 @@ store_spi_transport_##field(struct device *dev, > \ > struct spi_transport_attrs *tp > \ > = (struct spi_transport_attrs *)&starget- > >starget_data; \ > > \ > - if (i->f->set_##field) > \ > + if (!i->f->set_##field) > \ > return -EINVAL; > \ > val = simple_strtoul(buf, NULL, 0); > \ > if (val > tp->max_##field) > \
On Sat, 27 Jun 2020 06:32:42 -0700, trix@redhat.com wrote: > clang static analysis flags several null function pointer problems. > > drivers/scsi/scsi_transport_spi.c:374:1: warning: Called function pointer is null (null dereference) [core.CallAndMessage] > spi_transport_max_attr(offset, "%d\n"); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Reviewing the store_spi_store_max macro > > [...] Applied to 5.8/scsi-fixes, thanks! [1/1] scsi: scsi_transport_spi: Fix function pointer check https://git.kernel.org/mkp/scsi/c/5aee52c44d91
diff --git a/drivers/scsi/scsi_transport_spi.c b/drivers/scsi/scsi_transport_spi.c index f8661062ef95..f3d5b1bbd5aa 100644 --- a/drivers/scsi/scsi_transport_spi.c +++ b/drivers/scsi/scsi_transport_spi.c @@ -339,7 +339,7 @@ store_spi_transport_##field(struct device *dev, \ struct spi_transport_attrs *tp \ = (struct spi_transport_attrs *)&starget->starget_data; \ \ - if (i->f->set_##field) \ + if (!i->f->set_##field) \ return -EINVAL; \ val = simple_strtoul(buf, NULL, 0); \ if (val > tp->max_##field) \