File tree Expand file tree Collapse file tree 2 files changed +3
-2
lines changed Expand file tree Collapse file tree 2 files changed +3
-2
lines changed Original file line number Diff line number Diff line change @@ -156,7 +156,7 @@ func (dec *fecDecoder) decode(in fecPacket) (recovered [][]byte) {
156
156
dlen := len (shards [k ])
157
157
shards [k ] = shards [k ][:maxlen ]
158
158
copy (shards [k ][dlen :], dec .zeros )
159
- } else {
159
+ } else if k < dec . dataShards {
160
160
shards [k ] = xmitBuf .Get ().([]byte )[:0 ]
161
161
}
162
162
}
Original file line number Diff line number Diff line change @@ -663,9 +663,10 @@ func (s *UDPSession) kcpInput(data []byte) {
663
663
if f .flag () == typeParity {
664
664
fecParityShards ++
665
665
}
666
- recovers := s .fecDecoder .decode (f )
667
666
667
+ // lock
668
668
s .mu .Lock ()
669
+ recovers := s .fecDecoder .decode (f )
669
670
if f .flag () == typeData {
670
671
if ret := s .kcp .Input (data [fecHeaderSizePlus2 :], true , s .ackNoDelay ); ret != 0 {
671
672
kcpInErrors ++
You can’t perform that action at this time.
0 commit comments