Skip to content

Commit 53779ad

Browse files
tanghaowillowstv0g
authored andcommittedAug 9, 2023
Correct out of range checking
1 parent 4160a9f commit 53779ad

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed
 

Diff for: ‎transport_layer_cc.go

+6-3
Original file line numberDiff line numberDiff line change
@@ -523,17 +523,20 @@ func (t *TransportLayerCC) Unmarshal(rawPacket []byte) error { //nolint:gocognit
523523

524524
recvDeltasPos := packetStatusPos
525525
for _, delta := range t.RecvDeltas {
526-
if recvDeltasPos >= totalLength {
527-
return errPacketTooShort
528-
}
529526
if delta.Type == TypeTCCPacketReceivedSmallDelta {
527+
if recvDeltasPos+1 > totalLength {
528+
return errPacketTooShort
529+
}
530530
err := delta.Unmarshal(rawPacket[recvDeltasPos : recvDeltasPos+1])
531531
if err != nil {
532532
return err
533533
}
534534
recvDeltasPos++
535535
}
536536
if delta.Type == TypeTCCPacketReceivedLargeDelta {
537+
if recvDeltasPos+2 > totalLength {
538+
return errPacketTooShort
539+
}
537540
err := delta.Unmarshal(rawPacket[recvDeltasPos : recvDeltasPos+2])
538541
if err != nil {
539542
return err

0 commit comments

Comments
 (0)
Please sign in to comment.