From 1fc476d7feccff981d4c04e23df982149e47f356 Mon Sep 17 00:00:00 2001 From: Lucas Manning Date: Fri, 4 Nov 2022 15:38:35 -0700 Subject: [PATCH] Return a new packet from fragment reassembly instead of an old one. PiperOrigin-RevId: 486246464 --- pkg/tcpip/network/internal/fragmentation/reassembler.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/tcpip/network/internal/fragmentation/reassembler.go b/pkg/tcpip/network/internal/fragmentation/reassembler.go index 17d056f1c..a9ba0587b 100644 --- a/pkg/tcpip/network/internal/fragmentation/reassembler.go +++ b/pkg/tcpip/network/internal/fragmentation/reassembler.go @@ -167,7 +167,7 @@ func (r *reassembler) process(first, last uint16, more bool, proto uint8, pkt st return r.holes[i].first < r.holes[j].first }) - resPkt := r.holes[0].pkt.IncRef() + resPkt := r.holes[0].pkt.Clone() for i := 1; i < len(r.holes); i++ { stack.MergeFragment(resPkt, r.holes[i].pkt) }