[PATCH] gro: fix payload corruption in coalescing packets
kumaraparameshwaran rathinavel
kumaraparamesh92 at gmail.com
Thu Sep 18 14:36:11 CEST 2025
Reviewed by : @kumaraparameshwaran rathinavel <kumaraparamesh92 at gmail.com>
On Tue, Sep 2, 2025 at 4:14 PM Tathagat Priyadarshi <tathagat.dpdk at gmail.com>
wrote:
> In the current implementation when cmp is larger than 0,
> the new packet is appended to the original packet. However
> the code is operating on the trailing packet to update the tcp flags
> which ends up corrupting the payload of the trailing packets.
>
> Fixes: 547f29435769 ("gro: fix reordering of packets")
> Cc: stable at dpdk.org
>
> Signed-off-by: Tathagat Priyadarshi <tathagat.dpdk at gmail.com>
> ---
> lib/gro/gro_tcp.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/gro/gro_tcp.h b/lib/gro/gro_tcp.h
> index e9be7b95d1..43383e47e0 100644
> --- a/lib/gro/gro_tcp.h
> +++ b/lib/gro/gro_tcp.h
> @@ -133,7 +133,7 @@ merge_two_tcp_packets(struct gro_tcp_item *item,
> pkt_head->nb_segs += pkt_tail->nb_segs;
> pkt_head->pkt_len += pkt_tail->pkt_len;
> if (tcp_flags != RTE_TCP_ACK_FLAG) {
> - tcp_hdr = rte_pktmbuf_mtod_offset(pkt, struct rte_tcp_hdr
> *,
> + tcp_hdr = rte_pktmbuf_mtod_offset(pkt_head, struct
> rte_tcp_hdr *,
> l2_offset +
> pkt_head->l2_len + pkt_head->l3_len);
> tcp_hdr->tcp_flags |= tcp_flags;
> }
> --
> 2.34.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mails.dpdk.org/archives/stable/attachments/20250918/f9b24167/attachment.htm>
More information about the stable
mailing list