fbdev: mmp: Annotate struct mmp_path with __counted_by
authorKees Cook <keescook@chromium.org>
Fri, 22 Sep 2023 17:51:41 +0000 (10:51 -0700)
committerHelge Deller <deller@gmx.de>
Sat, 23 Sep 2023 18:35:44 +0000 (20:35 +0200)
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 mmp_path.

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

Cc: Helge Deller <deller@gmx.de>
Cc: linux-fbdev@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Helge Deller <deller@gmx.de>
include/video/mmp_disp.h

index 77252cb..a722dcb 100644 (file)
@@ -231,7 +231,7 @@ struct mmp_path {
 
        /* layers */
        int overlay_num;
-       struct mmp_overlay overlays[];
+       struct mmp_overlay overlays[] __counted_by(overlay_num);
 };
 
 extern struct mmp_path *mmp_get_path(const char *name);