Blame SOURCES/d62cecf193d6bf3b16fe91d725f4514161f602c3.patch

ee39b2
From d62cecf193d6bf3b16fe91d725f4514161f602c3 Mon Sep 17 00:00:00 2001
ee39b2
From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
ee39b2
Date: Wed, 3 Mar 2021 11:31:52 +0200
ee39b2
Subject: [PATCH] matroskademux: Initialize track context out parameter to NULL
ee39b2
 before parsing
ee39b2
ee39b2
Various error return paths don't set it to NULL and callers are only
ee39b2
checking if the pointer is NULL. As it's allocated on the stack this
ee39b2
usually contains random stack memory, and more often than not the memory
ee39b2
of a previously parsed track.
ee39b2
ee39b2
This then causes all kinds of memory corruptions further down the line.
ee39b2
ee39b2
Thanks to Natalie Silvanovich for reporting.
ee39b2
ee39b2
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/858
ee39b2
ee39b2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/904>
ee39b2
---
ee39b2
 gst/matroska/matroska-demux.c | 2 ++
ee39b2
 1 file changed, 2 insertions(+)
ee39b2
ee39b2
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
ee39b2
index b2cd9b5d4..4eb3d2a9f 100644
ee39b2
--- a/gst/matroska/matroska-demux.c
ee39b2
+++ b/gst/matroska/matroska-demux.c
ee39b2
@@ -660,6 +660,8 @@ gst_matroska_demux_parse_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml,
ee39b2
 
ee39b2
   DEBUG_ELEMENT_START (demux, ebml, "TrackEntry");
ee39b2
 
ee39b2
+  *dest_context = NULL;
ee39b2
+
ee39b2
   /* start with the master */
ee39b2
   if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) {
ee39b2
     DEBUG_ELEMENT_STOP (demux, ebml, "TrackEntry", ret);
ee39b2
-- 
ee39b2
GitLab
ee39b2