diff --git a/pkg/sfu/receiver.go b/pkg/sfu/receiver.go index 8c16675bd..ee307a863 100644 --- a/pkg/sfu/receiver.go +++ b/pkg/sfu/receiver.go @@ -770,6 +770,14 @@ func (w *WebRTCReceiver) forwardRTP(layer int32, buff *buffer.Buffer) { // svc packet, take spatial layer info from packet spatialLayer = pkt.Spatial } + if int(spatialLayer) >= len(spatialTrackers) { + w.logger.Errorw( + "unexpected spatial layer", nil, + "spatialLayer", spatialLayer, + "pktSpatialLayer", pkt.Spatial, + ) + continue + } writeCount := w.downTrackSpreader.Broadcast(func(dt TrackSender) { _ = dt.WriteRTP(pkt, spatialLayer)