]> www.infradead.org Git - users/willy/linux.git/commitdiff
scsi: scsi_transport_spi: Fix function pointer check
authorTom Rix <trix@redhat.com>
Sat, 27 Jun 2020 13:32:42 +0000 (06:32 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 30 Jun 2020 01:34:35 +0000 (21:34 -0400)
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;

Link: https://lore.kernel.org/r/20200627133242.21618-1-trix@redhat.com
Reviewed-by: James Bottomley <jejb@linux.ibm.com>
Signed-off-by: Tom Rix <trix@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/scsi_transport_spi.c

index f8661062ef9547a322c4b6f2ed2fa7d0eb8b2d7a..f3d5b1bbd5aa7eff36c5d91cd9d2df6e41a77f8d 100644 (file)
@@ -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)                                      \