<div dir="ltr">Reviewed by : <a class="gmail_plusreply" id="plusReplyChip-5" href="mailto:kumaraparamesh92@gmail.com" tabindex="-1">@kumaraparameshwaran rathinavel</a> </div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, Sep 2, 2025 at 4:14 PM Tathagat Priyadarshi <<a href="mailto:tathagat.dpdk@gmail.com">tathagat.dpdk@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">In the current implementation when cmp is larger than 0,<br>
the new packet is appended to the original packet. However<br>
the code is operating on the trailing packet to update the tcp flags<br>
which ends up corrupting the payload of the trailing packets.<br>
<br>
Fixes: 547f29435769 ("gro: fix reordering of packets")<br>
Cc: <a href="mailto:stable@dpdk.org" target="_blank">stable@dpdk.org</a><br>
<br>
Signed-off-by: Tathagat Priyadarshi <<a href="mailto:tathagat.dpdk@gmail.com" target="_blank">tathagat.dpdk@gmail.com</a>><br>
---<br>
 lib/gro/gro_tcp.h | 2 +-<br>
 1 file changed, 1 insertion(+), 1 deletion(-)<br>
<br>
diff --git a/lib/gro/gro_tcp.h b/lib/gro/gro_tcp.h<br>
index e9be7b95d1..43383e47e0 100644<br>
--- a/lib/gro/gro_tcp.h<br>
+++ b/lib/gro/gro_tcp.h<br>
@@ -133,7 +133,7 @@ merge_two_tcp_packets(struct gro_tcp_item *item,<br>
        pkt_head->nb_segs += pkt_tail->nb_segs;<br>
        pkt_head->pkt_len += pkt_tail->pkt_len;<br>
        if (tcp_flags != RTE_TCP_ACK_FLAG) {<br>
-               tcp_hdr = rte_pktmbuf_mtod_offset(pkt, struct rte_tcp_hdr *,<br>
+               tcp_hdr = rte_pktmbuf_mtod_offset(pkt_head, struct rte_tcp_hdr *,<br>
                                                l2_offset + pkt_head->l2_len + pkt_head->l3_len);<br>
                tcp_hdr->tcp_flags |= tcp_flags;<br>
        }<br>
-- <br>
2.34.1<br>
<br>
</blockquote></div>