player: racy crash in playbin3 subtitles handling
When a suburi is set without prior call to gst_player_set_subtitle_track()
:
(gdb) bt
#0 0x00007f7f88eeaaae in __strcmp_avx2 () at /lib64/libc.so.6
#1 0x00007f7f891f5ee9 in g_str_equal () at /lib64/libglib-2.0.so.0
#2 0x00007f7f891a86e7 in gst_player_subtitle_info_update (stream_info=0x7f7ea8006d90, self=0x5560f25a1e60) at ../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c:2108
#3 gst_player_stream_info_update (s=<optimized out>, self=<optimized out>) at ../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c:2408
#4 gst_player_stream_info_update (self=0x5560f25a1e60, s=0x7f7ea8006d90) at ../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c:2401
#5 0x00007f7f891ab02e in gst_player_streams_info_create_from_collection (collection=0x7f7e8000eba0, media_info=0x7f7f6c0216c0, self=0x5560f25a1e60)
at ../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c:2600
#6 gst_player_media_info_create (self=self@entry=0x5560f25a1e60) at ../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c:2738
#7 0x00007f7f891b0ac8 in state_changed_cb (bus=<optimized out>, msg=<optimized out>, user_data=<optimized out>) at ../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c:1623
#8 0x00007f7f89306690 in g_cclosure_marshal_VOID__BOXEDv () at /lib64/libgobject-2.0.so.0
#9 0x00007f7f8931f260 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#10 0x00007f7f8931f37f in g_signal_emit () at /lib64/libgobject-2.0.so.0
#11 0x00007f7f88fef478 in gst_bus_async_signal_func (bus=0x7f7f7400a350, message=0x7f7ea409b580, data=<optimized out>) at ../subprojects/gstreamer/gst/gstbus.c:1295
#12 0x00007f7f88ff033c in gst_bus_source_dispatch (source=0x7f7f6c0161e0, callback=0x7f7f88fef420 <gst_bus_async_signal_func>, user_data=0x0) at ../subprojects/gstreamer/gst/gstbus.c:851
#13 0x00007f7f89211ff7 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#14 0x00007f7f89262bb8 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#15 0x00007f7f892116cb in g_main_loop_run () at /lib64/libglib-2.0.so.0
#16 0x00007f7f891ae69c in gst_player_main (data=<optimized out>) at ../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c:2991
#17 0x00007f7f8923ef2e in g_thread_proxy () at /lib64/libglib-2.0.so.0
#18 0x00007f7f88f7f3f9 in start_thread () at /lib64/libpthread.so.0
#19 0x00007f7f88e8eb03 in clone () at /lib64/libc.so.6
(gdb) f 2
#2 0x00007f7f891a86e7 in gst_player_subtitle_info_update (stream_info=0x7f7ea8006d90, self=0x5560f25a1e60) at ../subprojects/gst-plugins-bad/gst-libs/gst/player/gstplayer.c:2108
2108 if (g_str_equal (self->subtitle_sid, stream_info->stream_id))
(gdb) p self->subtitle_sid
$1 = (gchar *) 0x0