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 qcom_smem. [1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci Cc: Andy Gross <agr...@kernel.org> Cc: Bjorn Andersson <anders...@kernel.org> Cc: Konrad Dybcio <konrad.dyb...@linaro.org> Cc: Nathan Chancellor <nat...@kernel.org> Cc: Nick Desaulniers <ndesaulni...@google.com> Cc: Tom Rix <t...@redhat.com> Cc: linux-arm-...@vger.kernel.org Cc: l...@lists.linux.dev Signed-off-by: Kees Cook <keesc...@chromium.org> --- drivers/soc/qcom/smem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/soc/qcom/smem.c b/drivers/soc/qcom/smem.c index d4a89d2bb43b..4ce9cf1477ac 100644 --- a/drivers/soc/qcom/smem.c +++ b/drivers/soc/qcom/smem.c @@ -285,7 +285,7 @@ struct qcom_smem { struct smem_partition partitions[SMEM_HOST_COUNT]; unsigned num_regions; - struct smem_region regions[]; + struct smem_region regions[] __counted_by(num_regions); }; static void * -- 2.34.1