After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 784534 - rtpsession releases RTP_SESSION_LOCK while iterating the ssrc hashtable
rtpsession releases RTP_SESSION_LOCK while iterating the ssrc hashtable
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
1.12.x
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-07-05 01:25 UTC by Olivier Crête
Modified: 2018-11-03 15:20 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Olivier Crête 2017-07-05 01:25:11 UTC
While fixing bug #773218, I discovered a new problem in rtpsession, we release the LOCK while iterating over the ssrcs hash table using g_hash_table_foreach(). If we're unlucky, that can result in the hash table being modified during the iteration which hits a critical inside GHashTable.

The call sequence is the following:

rtp_session_on_timeout() -> g_hash_table_foreach() -> generate_rtcp() -> session_start_rtcp() -> rtp_source_get_new_sr() -> get_clock_rate() -> source_clock_rate()

To reproduce, in gst-plugins-good:
GST_CHECKS=test_sender_eos make elements/rtpbin.forever
Comment 1 GStreamer system administrator 2018-11-03 15:20:39 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/387.