summaryrefslogtreecommitdiffstats
path: root/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0023-qtdemux-Avoid-integer-overflow-when-parsing-Theora-e.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0023-qtdemux-Avoid-integer-overflow-when-parsing-Theora-e.patch')
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0023-qtdemux-Avoid-integer-overflow-when-parsing-Theora-e.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0023-qtdemux-Avoid-integer-overflow-when-parsing-Theora-e.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0023-qtdemux-Avoid-integer-overflow-when-parsing-Theora-e.patch
new file mode 100644
index 0000000000..37f133a493
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0023-qtdemux-Avoid-integer-overflow-when-parsing-Theora-e.patch
@@ -0,0 +1,44 @@
1From f8e398c46fc074f266edb3f20479c0ca31b52448 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
3Date: Thu, 26 Sep 2024 22:16:06 +0300
4Subject: [PATCH] qtdemux: Avoid integer overflow when parsing Theora extension
5
6Thanks to Antonio Morales for finding and reporting the issue.
7
8Fixes GHSL-2024-166
9Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3851
10
11Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8032>
12
13CVE: CVE-2024-47606
14Upstream-Status: Backport [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/f8e398c46fc074f266edb3f20479c0ca31b52448]
15Signed-off-by: Peter Marko <peter.marko@siemens.com>
16---
17 gst/isomp4/qtdemux.c | 4 ++--
18 1 file changed, 2 insertions(+), 2 deletions(-)
19
20diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c
21index 5e3cb1b9e6..c2d8b5e0f1 100644
22--- a/gst/isomp4/qtdemux.c
23+++ b/gst/isomp4/qtdemux.c
24@@ -8279,7 +8279,7 @@ qtdemux_parse_theora_extension (GstQTDemux * qtdemux, QtDemuxStream * stream,
25 end -= 8;
26
27 while (buf < end) {
28- gint size;
29+ guint32 size;
30 guint32 type;
31
32 size = QT_UINT32 (buf);
33@@ -8287,7 +8287,7 @@ qtdemux_parse_theora_extension (GstQTDemux * qtdemux, QtDemuxStream * stream,
34
35 GST_LOG_OBJECT (qtdemux, "%p %p", buf, end);
36
37- if (buf + size > end || size <= 0)
38+ if (end - buf < size || size < 8)
39 break;
40
41 buf += 8;
42--
432.30.2
44