ACPI: PRM: Annotate struct prm_module_info with __counted_by
authorKees Cook <keescook@chromium.org>
Fri, 22 Sep 2023 17:53:15 +0000 (10:53 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 3 Oct 2023 19:24:10 +0000 (21:24 +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 prm_module_info.

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>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/prmt.c

index 7020584096bfaaaf0532e0330e2698485e983e87..c78453c74ef5aa6cb30485901f0ee127fddebed4 100644 (file)
@@ -69,7 +69,7 @@ struct prm_module_info {
        bool updatable;
 
        struct list_head module_list;
-       struct prm_handler_info handlers[];
+       struct prm_handler_info handlers[] __counted_by(handler_count);
 };
 
 static u64 efi_pa_va_lookup(u64 pa)