mpegtsmux: fix double free caused by shared PMT descriptor

The PMT descriptor was owned by the stream object but also added to
the descriptors array without copying, leading to a double free and
core dump during cleanup

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9285>
This commit is contained in:
David Monge 2025-06-25 09:30:15 -06:00 committed by GStreamer Marge Bot
parent 51cbcfbc57
commit d22be5d383

View File

@ -1054,7 +1054,8 @@ tsmux_stream_default_get_es_descrs (TsMuxStream * stream,
descriptor = gst_mpegts_descriptor_from_registration ("AV1G", NULL, 0);
g_ptr_array_add (pmt_stream->descriptors, descriptor);
if (stream->pmt_descriptor)
g_ptr_array_add (pmt_stream->descriptors, stream->pmt_descriptor);
g_ptr_array_add (pmt_stream->descriptors,
gst_mpegts_descriptor_copy (stream->pmt_descriptor));
}
if (stream->internal_stream_type == TSMUX_ST_PS_TELETEXT) {
// FIXME empty descriptor for now;