From 92c0f81bf488787caf26cc3242b9aa16d9cdb551 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Sat, 4 Apr 2020 13:00:39 +0700 Subject: [PATCH] improve error handling in sentPacketHandler --- internal/ackhandler/sent_packet_handler.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/internal/ackhandler/sent_packet_handler.go b/internal/ackhandler/sent_packet_handler.go index c04e5cbb..3e8c8e25 100644 --- a/internal/ackhandler/sent_packet_handler.go +++ b/internal/ackhandler/sent_packet_handler.go @@ -481,7 +481,7 @@ func (h *sentPacketHandler) detectAndRemoveLostPackets(now time.Time, encLevel p lostSendTime := now.Add(-lossDelay) var lostPackets []*Packet - pnSpace.history.Iterate(func(packet *Packet) (bool, error) { + if err := pnSpace.history.Iterate(func(packet *Packet) (bool, error) { if packet.PacketNumber > pnSpace.largestAcked { return false, nil } @@ -505,7 +505,9 @@ func (h *sentPacketHandler) detectAndRemoveLostPackets(now time.Time, encLevel p pnSpace.lossTime = lossTime } return true, nil - }) + }); err != nil { + return nil, err + } if h.logger.Debug() && len(lostPackets) > 0 { pns := make([]protocol.PacketNumber, len(lostPackets)) @@ -521,7 +523,9 @@ func (h *sentPacketHandler) detectAndRemoveLostPackets(now time.Time, encLevel p if p.includedInBytesInFlight { h.bytesInFlight -= p.Length } - pnSpace.history.Remove(p.PacketNumber) + if err := pnSpace.history.Remove(p.PacketNumber); err != nil { + return nil, err + } if h.traceCallback != nil { frames := make([]wire.Frame, 0, len(p.Frames)) for _, f := range p.Frames {