From 87f53228e907afca9ce0b48cfa3b8a91f1ad157a Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Mon, 10 Aug 2020 09:40:53 +0700 Subject: [PATCH] put back the packet buffer when parsing the connection ID fails --- packet_handler_map.go | 1 + packet_handler_map_test.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packet_handler_map.go b/packet_handler_map.go index c786374c8..781f430e6 100644 --- a/packet_handler_map.go +++ b/packet_handler_map.go @@ -273,6 +273,7 @@ func (h *packetHandlerMap) handlePacket( ) { connID, err := wire.ParseConnectionID(data, h.connIDLen) if err != nil { + buffer.MaybeRelease() h.logger.Debugf("error parsing connection ID on packet from %s: %s", addr, err) if h.tracer != nil { h.tracer.DroppedPacket(addr, logging.PacketTypeNotDetermined, protocol.ByteCount(len(data)), logging.PacketDropHeaderParseError) diff --git a/packet_handler_map_test.go b/packet_handler_map_test.go index 26d32a3e6..b2e99355c 100644 --- a/packet_handler_map_test.go +++ b/packet_handler_map_test.go @@ -130,7 +130,7 @@ var _ = Describe("Packet Handler Map", func() { It("drops unparseable packets", func() { addr := &net.UDPAddr{IP: net.IPv4(9, 8, 7, 6), Port: 1234} tracer.EXPECT().DroppedPacket(addr, logging.PacketTypeNotDetermined, protocol.ByteCount(4), logging.PacketDropHeaderParseError) - handler.handlePacket(addr, nil, []byte{0, 1, 2, 3}) + handler.handlePacket(addr, getPacketBuffer(), []byte{0, 1, 2, 3}) }) It("deletes removed sessions immediately", func() {