Re: [PATCH] net: ethernet: mtk_eth_soc: Avoid truncating allocation

From: Simon Horman
Date: Sat Jan 28 2023 - 08:40:41 EST


On Fri, Jan 27, 2023 at 02:38:54PM -0800, Kees Cook wrote:
> There doesn't appear to be a reason to truncate the allocation used for
> flow_info, so do a full allocation and remove the unused empty struct.
> GCC does not like having a reference to an object that has been
> partially allocated, as bounds checking may become impossible when
> such an object is passed to other code. Seen with GCC 13:
>
> ../drivers/net/ethernet/mediatek/mtk_ppe.c: In function 'mtk_foe_entry_commit_subflow':
> ../drivers/net/ethernet/mediatek/mtk_ppe.c:623:18: warning: array subscript 'struct mtk_flow_entry[0]' is partly outside array bounds of 'unsigned char[48]' [-Warray-bounds=]
> 623 | flow_info->l2_data.base_flow = entry;
> | ^~
>

...

> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
> ---
> drivers/net/ethernet/mediatek/mtk_ppe.c | 3 +--
> drivers/net/ethernet/mediatek/mtk_ppe.h | 1 -
> 2 files changed, 1 insertion(+), 3 deletions(-)

Reviewed-by: Simon Horman <simon.horman@xxxxxxxxxxxx>