summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2021-11-16 13:14:25 +0100
committerTim-Philipp Müller <tim@centricular.com>2021-11-20 18:22:35 +0000
commit242144c78e0d5fed982f5c250c46216be07d734e (patch)
tree8b06de9277f4816a6d6f93afe6b41da58752d3bd
parentde7fcdeaa5717b031e1e15d1a9dd7ab02b271b8a (diff)
downloadgstreamer-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.c1
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