net: sched: Annotate struct tc_pedit with __counted_by
authorKees Cook <keescook@chromium.org>
Fri, 16 Feb 2024 23:27:44 +0000 (15:27 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 19 Feb 2024 10:58:24 +0000 (10:58 +0000)
commit1e63e5a813fa6203d7430af51d6bffb728525015
tree9b2f81133ae9e0844a65f6bc71d03a8b7db7e35b
parentda4a154ca262eec77b0a07ba1a2a00c91b2b7677
net: sched: Annotate struct tc_pedit 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 tc_pedit.
Additionally, since the element count member must be set before accessing
the annotated flexible array member, move its initialization earlier.

Link: https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/tc_act/tc_pedit.h
net/sched/act_pedit.c