Message ID | 20231003231838.work.510-kees@kernel.org (mailing list archive) |
---|---|
State | Mainlined |
Commit | da2e08d4630ab04ee5b61515fe423c582b5c3be2 |
Headers | show |
Series | i40e: Annotate struct i40e_qvlist_info with __counted_by | expand |
On 10/4/23 01:18, 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 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 i40e_qvlist_info. > > Cc: Tony Nguyen <anthony.l.nguyen@intel.com> > Cc: Shiraz Saleem <shiraz.saleem@intel.com> > Cc: Jakub Kicinski <kuba@kernel.org> > Cc: Jesse Brandeburg <jesse.brandeburg@intel.com> > Cc: Gurucharan G <gurucharanx.g@intel.com> > Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org> > Link: https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci [1] > Signed-off-by: Kees Cook <keescook@chromium.org> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org> Thanks -- Gustavo > --- > include/linux/net/intel/i40e_client.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/linux/net/intel/i40e_client.h b/include/linux/net/intel/i40e_client.h > index ed42bd5f639f..0aa4411528fc 100644 > --- a/include/linux/net/intel/i40e_client.h > +++ b/include/linux/net/intel/i40e_client.h > @@ -45,7 +45,7 @@ struct i40e_qv_info { > > struct i40e_qvlist_info { > u32 num_vectors; > - struct i40e_qv_info qv_info[]; > + struct i40e_qv_info qv_info[] __counted_by(num_vectors); > }; > >
On Tue, 03 Oct 2023 16:18:38 -0700, 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 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 i40e_qvlist_info. > > [...] Applied to for-next/hardening, thanks! [1/1] i40e: Annotate struct i40e_qvlist_info with __counted_by https://git.kernel.org/kees/c/da2e08d4630a Take care,
diff --git a/include/linux/net/intel/i40e_client.h b/include/linux/net/intel/i40e_client.h index ed42bd5f639f..0aa4411528fc 100644 --- a/include/linux/net/intel/i40e_client.h +++ b/include/linux/net/intel/i40e_client.h @@ -45,7 +45,7 @@ struct i40e_qv_info { struct i40e_qvlist_info { u32 num_vectors; - struct i40e_qv_info qv_info[]; + struct i40e_qv_info qv_info[] __counted_by(num_vectors); };
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 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 i40e_qvlist_info. Cc: Tony Nguyen <anthony.l.nguyen@intel.com> Cc: Shiraz Saleem <shiraz.saleem@intel.com> Cc: Jakub Kicinski <kuba@kernel.org> Cc: Jesse Brandeburg <jesse.brandeburg@intel.com> Cc: Gurucharan G <gurucharanx.g@intel.com> Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org> Link: https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci [1] Signed-off-by: Kees Cook <keescook@chromium.org> --- include/linux/net/intel/i40e_client.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)