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 brcmf_fw_request. [1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci Cc: Arend van Spriel <aspr...@gmail.com> Cc: Franky Lin <franky....@broadcom.com> Cc: Hante Meuleman <hante.meule...@broadcom.com> Cc: Kalle Valo <kv...@kernel.org> Cc: Matthias Brugger <mbrug...@suse.com> Cc: Hector Martin <mar...@marcan.st> Cc: "Alvin Šipraga" <a...@bang-olufsen.dk> Cc: Hans de Goede <hdego...@redhat.com> Cc: linux-wirel...@vger.kernel.org Cc: brcm80211-dev-list....@broadcom.com Cc: sha-cyfmac-dev-l...@infineon.com Signed-off-by: Kees Cook <keesc...@chromium.org> --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h index 1266cbaee072..4002d326fd21 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h @@ -69,7 +69,7 @@ struct brcmf_fw_request { u16 bus_nr; u32 n_items; const char *board_types[BRCMF_FW_MAX_BOARD_TYPES]; - struct brcmf_fw_item items[]; + struct brcmf_fw_item items[] __counted_by(n_items); }; struct brcmf_fw_name { -- 2.34.1