rtpsession: Add missing lock around sess->ssrcs iteration
authorStian Selnes <stian@pexip.com>
Mon, 27 Nov 2017 09:56:47 +0000 (10:56 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Sun, 13 May 2018 18:17:02 +0000 (19:17 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=795139

gst/rtpmanager/rtpsession.c

index 7224674..1654244 100644 (file)
@@ -3973,11 +3973,15 @@ rtp_session_are_all_sources_bye (RTPSession * sess)
   GHashTableIter iter;
   RTPSource *src;
 
+  RTP_SESSION_LOCK (sess);
   g_hash_table_iter_init (&iter, sess->ssrcs[sess->mask_idx]);
   while (g_hash_table_iter_next (&iter, NULL, (gpointer *) & src)) {
-    if (src->internal && !src->sent_bye)
+    if (src->internal && !src->sent_bye) {
+      RTP_SESSION_UNLOCK (sess);
       return FALSE;
+    }
   }
+  RTP_SESSION_UNLOCK (sess);
 
   return TRUE;
 }