Blame SOURCES/d62cecf193d6bf3b16fe91d725f4514161f602c3.patch

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