23 Sep
2023
23 Sep
'23
7:30 p.m.
On 9/22/23 11:50, Kees Cook wrote:
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 hda_conn_list.
[1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_...
Cc: Jaroslav Kysela perex@perex.cz Cc: Takashi Iwai tiwai@suse.com Cc: Cezary Rojewski cezary.rojewski@intel.com Cc: alsa-devel@alsa-project.org Signed-off-by: Kees Cook keescook@chromium.org
Reviewed-by: Gustavo A. R. Silva gustavoars@kernel.org
Thanks
--
Gustavo
> ---
> sound/pci/hda/hda_codec.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
> index 33af707a65ab..01718b1fc9a7 100644
> --- a/sound/pci/hda/hda_codec.c
> +++ b/sound/pci/hda/hda_codec.c
> @@ -88,7 +88,7 @@ struct hda_conn_list {
> struct list_head list;
> int len;
> hda_nid_t nid;
> - hda_nid_t conns[];
> + hda_nid_t conns[] __counted_by(len);
> };
>
> /* look up the cached results */