spi: mchp-pci1xxxx: Annotate struct pci1xxxx_spi with __counted_by
authorKees Cook <keescook@chromium.org>
Fri, 22 Sep 2023 17:53:23 +0000 (10:53 -0700)
committerMark Brown <broonie@kernel.org>
Fri, 22 Sep 2023 18:01:40 +0000 (19:01 +0100)
Prepare for the coming implementation by GCC and Clang of the __counted_by
attribute. Flexible array members annotated with __counted_by can have
their accesses bounds-checked at run-time checking via CONFIG_UBSAN_BOUNDS
(for array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-family
functions).

As found with Coccinelle[1], add __counted_by for struct pci1xxxx_spi.

[1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci

Cc: Mark Brown <broonie@kernel.org>
Cc: linux-spi@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20230922175322.work.170-kees@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-pci1xxxx.c

index 3638e974f5d49d15cbd066baf00558b0cbded615..5b2d3e4e21b7ab470be5c24fc145cdcd22521b47 100644 (file)
@@ -77,7 +77,7 @@ struct pci1xxxx_spi {
        struct pci_dev *dev;
        u8 total_hw_instances;
        void __iomem *reg_base;
-       struct pci1xxxx_spi_internal *spi_int[];
+       struct pci1xxxx_spi_internal *spi_int[] __counted_by(total_hw_instances);
 };
 
 static const struct pci_device_id pci1xxxx_spi_pci_id_table[] = {