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 */ /* This is optional, if missing we iterate the ctts */
if (qtdemux_tree_get_child_by_type_full (stbl, FOURCC_cslg, &cslg)) { if (qtdemux_tree_get_child_by_type_full (stbl, FOURCC_cslg, &cslg)) {
if (!gst_byte_reader_skip (&cslg, 1 + 3) if (!gst_byte_reader_skip (&cslg, 1 + 3)
|| !gst_byte_reader_get_uint32_be (&cslg, &stream->cslg_shift)) { || !gst_byte_reader_get_uint32_be (&cslg, &stream->cslg_shift))
g_free ((gpointer) cslg.data);
goto corrupt_file; goto corrupt_file;
}
} else { } else {
gint32 cslg_least = 0; gint32 cslg_least = 0;
guint num_entries, pos; guint num_entries, pos;