gstreamer/subprojects/gst-plugins-bad/gst-libs/gst
Matthew Waters 5741ee38e0 webrtc/datachannel: fix use-after-free in sctp state notification
g_signal_disconnect*() doesn't stop any existing callbacks from running
which means that if the notify::state callback is in progress in one
thread and the data channel object is finalize()ed in another thread,
then there could be a use-after-free trying lock the data channel
object.

We can't reasonably use a GWeakRef as we don't have a 'parent' object to
free the GWeakRef after the data channel is finalized.  This is also
complicated by the fact that the application can hold a reference to the
data channel object that would live beyond the lifetime of webrtcbin
itself.

We solve this by implementing a ghetto weak-ref solution internally with
a list of outstanding data channels.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664>
2022-03-29 23:55:40 +00:00
..
adaptivedemux gst-plugins-bad: define G_LOG_DOMAIN for all libraries 2021-10-19 00:12:25 +00:00
audio gst-plugins-bad: define G_LOG_DOMAIN for all libraries 2021-10-19 00:12:25 +00:00
basecamerabinsrc docs: fix unnecessary ampersand, < and > escaping in code blocks 2021-11-12 11:39:19 +00:00
codecparsers codecs: av1: Fix state when we show existing keyframe 2022-03-19 11:56:33 +00:00
codecs codecs: h264: Save the field_pic_flag 2022-03-25 21:40:28 +00:00
d3d11 d3d11: Remove non-existing gst_d3d11_memory_get_type() API from header 2022-02-21 21:26:43 +00:00
insertbin gst-plugins-bad: define G_LOG_DOMAIN for all libraries 2021-10-19 00:12:25 +00:00
interfaces gst-plugins-bad: define G_LOG_DOMAIN for all libraries 2021-10-19 00:12:25 +00:00
isoff gst-plugins-bad: define G_LOG_DOMAIN for all libraries 2021-10-19 00:12:25 +00:00
mpegts mpeg: fix unused-but-set warning 2022-03-28 10:30:23 +00:00
opencv gst-plugins-bad: define G_LOG_DOMAIN for all libraries 2021-10-19 00:12:25 +00:00
play gstplay: Do not error out on message parsing failures 2022-03-07 11:03:41 +00:00
player player: Ensure the GstPlay is created before the wrapped renderer 2021-11-20 10:15:49 +00:00
sctp gst-plugins-bad: define G_LOG_DOMAIN for all libraries 2021-10-19 00:12:25 +00:00
transcoder gst-plugins-bad: define G_LOG_DOMAIN for all libraries 2021-10-19 00:12:25 +00:00
uridownloader gst-plugins-bad: define G_LOG_DOMAIN for all libraries 2021-10-19 00:12:25 +00:00
va va: Set <gst/va/gstva.h> as library single point entry header. 2022-03-29 19:48:30 +00:00
vulkan meson: Do hard build error for some MSVC warnings 2022-02-16 17:03:29 +00:00
wayland gst-plugins-bad: define G_LOG_DOMAIN for all libraries 2021-10-19 00:12:25 +00:00
webrtc webrtc/datachannel: fix use-after-free in sctp state notification 2022-03-29 23:55:40 +00:00
winrt gst-plugins-bad: define G_LOG_DOMAIN for all libraries 2021-10-19 00:12:25 +00:00
gettext.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
glib-compat-private.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gst-i18n-plugin.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
meson.build libs: Introduce GstWinRT library 2021-09-30 06:13:07 +00:00