gstreamer/subprojects/gst-plugins-bad/ext/webrtc
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
..
fwd.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstwebrtc.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstwebrtcbin.c webrtcbin: initial support for sending and receiving simulcast streams 2022-03-29 23:55:40 +00:00
gstwebrtcbin.h webrtcbin: don't name src pads based on the mline specifically anymore 2022-03-29 23:55:40 +00:00
gstwebrtcice.c webrtcice: Fix memory leaks in gst_webrtc_ice_add_candidate() 2022-02-09 09:00:25 +00:00
gstwebrtcice.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstwebrtcstats.c webrtcbin: initial support for sending and receiving simulcast streams 2022-03-29 23:55:40 +00:00
gstwebrtcstats.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
icestream.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
icestream.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
meson.build Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
nicetransport.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
nicetransport.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
transportreceivebin.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
transportreceivebin.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
transportsendbin.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
transportsendbin.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
transportstream.c webrtcbin: initial support for sending and receiving simulcast streams 2022-03-29 23:55:40 +00:00
transportstream.h webrtcbin: initial support for sending and receiving simulcast streams 2022-03-29 23:55:40 +00:00
utils.c webrtc: Expose RTCError enum 2022-01-29 14:42:22 +00:00
utils.h webrtcbin: improve some debugging output 2022-03-29 23:55:40 +00:00
webrtcdatachannel.c webrtc/datachannel: fix use-after-free in sctp state notification 2022-03-29 23:55:40 +00:00
webrtcdatachannel.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
webrtcsctptransport.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
webrtcsctptransport.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
webrtcsdp.c webrtc: Expose RTCError enum 2022-01-29 14:42:22 +00:00
webrtcsdp.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
webrtctransceiver.c webrtcbin: initial support for sending and receiving simulcast streams 2022-03-29 23:55:40 +00:00
webrtctransceiver.h webrtcbin: initial support for sending and receiving simulcast streams 2022-03-29 23:55:40 +00:00