From 929d6bc880f01562fc4b392d03de06ed36d5e100 Mon Sep 17 00:00:00 2001 From: David Zhao Date: Thu, 2 Feb 2023 14:56:07 -0800 Subject: [PATCH] Fix potentially nil access in buffer (#1374) --- pkg/sfu/receiver.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/sfu/receiver.go b/pkg/sfu/receiver.go index 3f3f85b27..7f951cdef 100644 --- a/pkg/sfu/receiver.go +++ b/pkg/sfu/receiver.go @@ -702,11 +702,16 @@ func (w *WebRTCReceiver) GetRTCPSenderReportDataExt(layer int32) *buffer.RTCPSen w.bufferMu.RLock() defer w.bufferMu.RUnlock() - if layer == InvalidLayerSpatial || int(layer) >= len(w.buffers) { + if layer == InvalidLayerSpatial { return nil } - return w.buffers[layer].GetSenderReportDataExt() + buffer := w.getBufferLocked(layer) + if buffer == nil { + return nil + } + + return buffer.GetSenderReportDataExt() } func (w *WebRTCReceiver) GetReferenceLayerRTPTimestamp(ts uint32, layer int32, referenceLayer int32) (uint32, error) {