From ab50ef2fb73891b02f5fae5b86b6b56342f4b2e2 Mon Sep 17 00:00:00 2001 From: Taruntej Kanakamalla Date: Thu, 26 Jun 2025 23:44:06 +0530 Subject: [PATCH] webrtc: sink: avoid recursive locking of the session Drop the session lock before calling end_session and finalize session if the consumer refuses the media or the provided payload in not valid Part-of: --- net/webrtc/src/webrtcsink/imp.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/webrtc/src/webrtcsink/imp.rs b/net/webrtc/src/webrtcsink/imp.rs index 183bc037a..0ae99739e 100644 --- a/net/webrtc/src/webrtcsink/imp.rs +++ b/net/webrtc/src/webrtcsink/imp.rs @@ -3835,6 +3835,8 @@ impl BaseWebRTCSink { media_idx, media_str ); + + drop(session); if let Some(_session) = state.end_session(&self.obj(), session_id) { drop(state); let settings = self.settings.lock().unwrap(); @@ -3862,6 +3864,7 @@ impl BaseWebRTCSink { session_id, ); + drop(session); if let Some(_session) = state.end_session(&self.obj(), session_id) { drop(state); let settings = self.settings.lock().unwrap();