summaryrefslogtreecommitdiffstats
path: root/drivers/pci/controller
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2023-09-22 10:52:57 -0700
committerKrzysztof Wilczyński <kwilczynski@kernel.org>2023-10-14 20:02:55 +0000
commitf741bcadfe52e424985926d4d1c1e3941bf8403e (patch)
tree1b2c1f198e26da15997248d937197cc14a646841 /drivers/pci/controller
parent0bb80ecc33a8fb5a682236443c1e740d5c917d1d (diff)
downloadlinux-f741bcadfe52e424985926d4d1c1e3941bf8403e.tar.gz
linux-f741bcadfe52e424985926d4d1c1e3941bf8403e.tar.bz2
linux-f741bcadfe52e424985926d4d1c1e3941bf8403e.zip
PCI: hv: Annotate struct hv_dr_state with __counted_by
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 hv_dr_state. [1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci Link: https://lore.kernel.org/linux-pci/20230922175257.work.900-kees@kernel.org Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org> Reviewed-by: "Gustavo A. R. Silva" <gustavoars@kernel.org> Acked-by: Wei Liu <wei.liu@kernel.org> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Dexuan Cui <decui@microsoft.com> Cc: Haiyang Zhang <haiyangz@microsoft.com> Cc: "K. Y. Srinivasan" <kys@microsoft.com> Cc: Krzysztof Wilczyński <kw@linux.com> Cc: Lorenzo Pieralisi <lpieralisi@kernel.org> Cc: Rob Herring <robh@kernel.org> Cc: Wei Liu <wei.liu@kernel.org> Cc: linux-hyperv@vger.kernel.org Cc: linux-pci@vger.kernel.org
Diffstat (limited to 'drivers/pci/controller')
-rw-r--r--drivers/pci/controller/pci-hyperv.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c
index bed3cefdaf19..30c7dfeccb16 100644
--- a/drivers/pci/controller/pci-hyperv.c
+++ b/drivers/pci/controller/pci-hyperv.c
@@ -545,7 +545,7 @@ struct hv_pcidev_description {
struct hv_dr_state {
struct list_head list_entry;
u32 device_count;
- struct hv_pcidev_description func[];
+ struct hv_pcidev_description func[] __counted_by(device_count);
};
struct hv_pci_dev {