mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 05:48:40 +00:00
![]() There are five virtchnl structures, which are allocated and checked in the code as `nents + 1`, meaning that they always have memory for one excessive element regardless of their actual number. This comes from that their sizeof() includes space for 1 element and then they get allocated via struct_size() or its open-coded equivalents, passing the actual number of elements. Expand virtchnl_struct_size() to handle such structures and replace those 1-elem arrays with proper flex ones. Also fix several places which open-code %IAVF_VIRTCHNL_VF_RESOURCE_SIZE. Finally, let the virtchnl_ether_addr_list size be computed automatically when there's no enough space for the whole list, otherwise we have to open-code reverse struct_size() logics. Signed-off-by: Alexander Lobakin <aleksander.lobakin@intel.com> Reviewed-by: Kees Cook <keescook@chromium.org> Tested-by: Rafal Romanowski <rafal.romanowski@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> |
||
---|---|---|
.. | ||
i40e.h | ||
i40e_adminq.c | ||
i40e_adminq.h | ||
i40e_adminq_cmd.h | ||
i40e_alloc.h | ||
i40e_client.c | ||
i40e_common.c | ||
i40e_dcb.c | ||
i40e_dcb.h | ||
i40e_dcb_nl.c | ||
i40e_ddp.c | ||
i40e_debugfs.c | ||
i40e_devids.h | ||
i40e_diag.c | ||
i40e_diag.h | ||
i40e_ethtool.c | ||
i40e_hmc.c | ||
i40e_hmc.h | ||
i40e_lan_hmc.c | ||
i40e_lan_hmc.h | ||
i40e_main.c | ||
i40e_nvm.c | ||
i40e_osdep.h | ||
i40e_prototype.h | ||
i40e_ptp.c | ||
i40e_register.h | ||
i40e_trace.h | ||
i40e_txrx.c | ||
i40e_txrx.h | ||
i40e_txrx_common.h | ||
i40e_type.h | ||
i40e_virtchnl_pf.c | ||
i40e_virtchnl_pf.h | ||
i40e_xsk.c | ||
i40e_xsk.h | ||
Makefile |