From 45ebfe378b00afb055fdc334fedb9933612783c6 Mon Sep 17 00:00:00 2001 From: orignal Date: Sat, 23 Apr 2022 11:11:49 -0400 Subject: [PATCH] correct Ack range --- libi2pd/SSU2.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libi2pd/SSU2.cpp b/libi2pd/SSU2.cpp index 2d85ab76..01a7ae1e 100644 --- a/libi2pd/SSU2.cpp +++ b/libi2pd/SSU2.cpp @@ -897,7 +897,7 @@ namespace transport if (*ranges > lastPacketNum) break; lastPacketNum -= *ranges; ranges++; // nacks if (*ranges > lastPacketNum) break; - firstPacketNum -= *ranges; ranges++; // acks + firstPacketNum = lastPacketNum - *ranges; ranges++; // acks len -= 2; HandleAckRange (firstPacketNum, lastPacketNum); } @@ -905,6 +905,7 @@ namespace transport void SSU2Session::HandleAckRange (uint32_t firstPacketNum, uint32_t lastPacketNum) { + if (firstPacketNum > lastPacketNum) return; auto it = m_SentPackets.begin (); while (it != m_SentPackets.end () && it->first < firstPacketNum) it++; // find first acked packet if (it == m_SentPackets.end ()) return; // not found