From 15edd4d86ef97bb4445117dc3690af23b6d32a2a 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 95c606d98..5081eaa5f 100644 --- a/pkg/sfu/receiver.go +++ b/pkg/sfu/receiver.go @@ -705,11 +705,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) {