diff options
author | Víctor Manuel Jáquez Leal <vjaquez@igalia.com> | 2021-11-16 13:14:25 +0100 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2021-11-20 18:22:35 +0000 |
commit | 242144c78e0d5fed982f5c250c46216be07d734e (patch) | |
tree | 8b06de9277f4816a6d6f93afe6b41da58752d3bd | |
parent | de7fcdeaa5717b031e1e15d1a9dd7ab02b271b8a (diff) | |
download | gstreamer-plugins-base-242144c78e0d5fed982f5c250c46216be07d734e.tar.gz |
uridecodebin3: Nullify current item after all play items are freed.
There's a potential race condition with this sort of pipelines on
certain systems (depends on the processing load):
GST_DEBUG_DUMP_DOT_DIR=/tmp \
gst-launch-1.0 uridecodebin3 uri=file://stream.mp4 ! glupload ! \
glimagesink --gst-debug=*:4
Right after the pipeline passes from PAUSED to READY, bin_to_dot_file
dumps uridecodebin3 properties, but current uri and suburi might be
already freed, causing a potential use-after-freed.
This patch makes NULL the current item right after all the play items
are freed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1287>
-rw-r--r-- | gst/playback/gsturidecodebin3.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gst/playback/gsturidecodebin3.c b/gst/playback/gsturidecodebin3.c index 71edd310b..0d7fc66bd 100644 --- a/gst/playback/gsturidecodebin3.c +++ b/gst/playback/gsturidecodebin3.c @@ -1110,6 +1110,7 @@ free_play_items (GstURIDecodeBin3 * dec) g_list_free (dec->play_items); dec->play_items = NULL; + dec->current = NULL; } static GstStateChangeReturn |