forked from quic-go/quic-go
fix race condition when dropping Initial packet with short connection ID (#4236)
This commit is contained in:
@@ -542,10 +542,10 @@ func (s *baseServer) validateToken(token *handshake.Token, addr net.Addr) bool {
|
|||||||
|
|
||||||
func (s *baseServer) handleInitialImpl(p receivedPacket, hdr *wire.Header) error {
|
func (s *baseServer) handleInitialImpl(p receivedPacket, hdr *wire.Header) error {
|
||||||
if len(hdr.Token) == 0 && hdr.DestConnectionID.Len() < protocol.MinConnectionIDLenInitial {
|
if len(hdr.Token) == 0 && hdr.DestConnectionID.Len() < protocol.MinConnectionIDLenInitial {
|
||||||
p.buffer.Release()
|
|
||||||
if s.tracer != nil && s.tracer.DroppedPacket != nil {
|
if s.tracer != nil && s.tracer.DroppedPacket != nil {
|
||||||
s.tracer.DroppedPacket(p.remoteAddr, logging.PacketTypeInitial, p.Size(), logging.PacketDropUnexpectedPacket)
|
s.tracer.DroppedPacket(p.remoteAddr, logging.PacketTypeInitial, p.Size(), logging.PacketDropUnexpectedPacket)
|
||||||
}
|
}
|
||||||
|
p.buffer.Release()
|
||||||
return errors.New("too short connection ID")
|
return errors.New("too short connection ID")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user