qtdemux: Don't free cslg data that we don't own on corrupt files

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
This commit is contained in:
Sebastian Dröge 2021-11-02 17:54:46 +02:00 committed by GStreamer Marge Bot
parent 5d3009b7f8
commit 7f105a919a

View file

@ -9386,10 +9386,8 @@ qtdemux_stbl_init (GstQTDemux * qtdemux, QtDemuxStream * stream, GNode * stbl)
/* This is optional, if missing we iterate the ctts */
if (qtdemux_tree_get_child_by_type_full (stbl, FOURCC_cslg, &cslg)) {
if (!gst_byte_reader_skip (&cslg, 1 + 3)
|| !gst_byte_reader_get_uint32_be (&cslg, &stream->cslg_shift)) {
g_free ((gpointer) cslg.data);
|| !gst_byte_reader_get_uint32_be (&cslg, &stream->cslg_shift))
goto corrupt_file;
}
} else {
gint32 cslg_least = 0;
guint num_entries, pos;