Hi Xiao,

On 6/21/21 10:21 AM, Xiao Wang wrote:
> When parsing the virtio net header and packet header for dequeue offload,
> we need to perform sanity check on the packet header to ensure:
>   - No out-of-boundary memory access.
>   - The packet header and virtio_net header are valid and aligned.
> 
> Fixes: d0cf91303d73 ("vhost: add Tx offload capabilities")
> Cc: sta...@dpdk.org
> 
> Signed-off-by: Xiao Wang <xiao.w.w...@intel.com>
> ---
> v5:
> - Redefine the function parse_ethernet() to parse_headers(). (David)
> - Use mbuf helpers e.g. rte_pktmbuf_data_len() and rte_pktmbuf_mtod_offset(). 
> (David)
> - Reset mbuf l2_len, l3_len and ol_flags when detecting anything invalid. 
> (David)
> - Improve some check conditions. (David)
> - Move the data_len check for L4 header into parse_headers(), in order to 
> avoid
>   duplicated checks in CSUM and GSO.
> - Use uint8_t instead of uint16_t for l4_proto variable.
> - Detect more invalid corner cases.
> 
> v4:
> - Rebase on head of main branch.
> - Allow empty L4 payload in GSO.
> 
> v3:
> - Check data_len before calling rte_pktmbuf_mtod. (David)
> 
> v2:
> - Allow empty L4 payload for cksum offload. (Konstantin)
> ---
>  lib/vhost/virtio_net.c | 117 
> +++++++++++++++++++++++++++++++++++++------------
>  1 file changed, 89 insertions(+), 28 deletions(-)
> 

Thanks for the fix, it looks good to me:

Reviewed-by: Maxime Coquelin <maxime.coque...@redhat.com>

Thanks,
Maxime

Reply via email to