media: v4l2-event: Annotate struct v4l2_subscribed_event with __counted_by
authorKees Cook <keescook@chromium.org>
Fri, 22 Sep 2023 17:49:52 +0000 (10:49 -0700)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Sat, 7 Oct 2023 08:55:45 +0000 (10:55 +0200)
commit54b6b605b9a00f5d93b48734122fa87ae345981e
tree783f38bbdc3bf3d30fd431362219b50eda374852
parentd425557814ab039012294aa6fd7dc0dd7f3ac4e3
media: v4l2-event: Annotate struct v4l2_subscribed_event 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 v4l2_subscribed_event.
Additionally, since the element count member must be set before accessing
the annotated flexible array member, move its initialization earlier.

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

Cc: lijian <lijian@yulong.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/v4l2-core/v4l2-event.c
include/media/v4l2-event.h