forked from quic-go/quic-go
only update last packet number after decryption in session
This commit is contained in:
@@ -242,7 +242,6 @@ func (s *Session) handlePacketImpl(remoteAddr interface{}, hdr *PublicHeader, da
|
||||
s.lastRcvdPacketNumber,
|
||||
hdr.PacketNumber,
|
||||
)
|
||||
s.lastRcvdPacketNumber = hdr.PacketNumber
|
||||
if utils.Debug() {
|
||||
utils.Debugf("<- Reading packet 0x%x (%d bytes) for connection %x", hdr.PacketNumber, len(data)+len(hdr.Raw), hdr.ConnectionID)
|
||||
}
|
||||
@@ -255,6 +254,9 @@ func (s *Session) handlePacketImpl(remoteAddr interface{}, hdr *PublicHeader, da
|
||||
return err
|
||||
}
|
||||
|
||||
// Only do this after decrypting, so we are sure the packet is not attacker-controlled
|
||||
s.lastRcvdPacketNumber = hdr.PacketNumber
|
||||
|
||||
err = s.receivedPacketHandler.ReceivedPacket(hdr.PacketNumber, packet.entropyBit)
|
||||
// ignore duplicate packets
|
||||
if err == ackhandlerlegacy.ErrDuplicatePacket || err == ackhandler.ErrDuplicatePacket {
|
||||
|
||||
Reference in New Issue
Block a user