Compare commits

...

No commits in common. "c8" and "imports/c9-beta/gstreamer1-plugins-base-1.18.4-5.el9" have entirely different histories.

8 changed files with 151 additions and 240 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/gst-plugins-base-1.16.1.tar.xz
SOURCES/gst-plugins-base-1.18.4.tar.xz

View File

@ -1 +1 @@
e906442fd99376ce2384a634637ede9fd8515fc3 SOURCES/gst-plugins-base-1.16.1.tar.xz
879dc96692609ac079cd9d05b359882fb9cf7108 SOURCES/gst-plugins-base-1.18.4.tar.xz

View File

@ -1,69 +0,0 @@
From 58deb2c68fda0cf46a03643aefa28efdc0753efa Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Fri, 8 Nov 2024 10:45:07 +0100
Subject: [PATCH] exiftag: Prevent integer overflows and out of bounds reads
when handling undefined tags
Fixes ZDI-CAN-23896
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3483
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6768>
---
gst-libs/gst/tag/gstexiftag.c | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/gst-libs/gst/tag/gstexiftag.c b/gst-libs/gst/tag/gstexiftag.c
index b615779be..558996b42 100644
--- a/gst-libs/gst/tag/gstexiftag.c
+++ b/gst-libs/gst/tag/gstexiftag.c
@@ -1372,6 +1372,8 @@ parse_exif_long_tag (GstExifReader * reader, const GstExifTagMatch * tag,
}
}
+static inline gboolean size_checked_add(gsize *dest, gsize a, gsize b) {
+ *dest = a + b; return *dest >= a; }
static void
parse_exif_undefined_tag (GstExifReader * reader, const GstExifTagMatch * tag,
@@ -1383,6 +1385,7 @@ parse_exif_undefined_tag (GstExifReader * reader, const GstExifTagMatch * tag,
if (count > 4) {
GstMapInfo info;
+ gsize alloc_size;
if (offset < reader->base_offset) {
GST_WARNING ("Offset is smaller (%u) than base offset (%u)", offset,
@@ -1404,14 +1407,28 @@ parse_exif_undefined_tag (GstExifReader * reader, const GstExifTagMatch * tag,
return;
}
+ if (info.size - real_offset < count) {
+ GST_WARNING ("Invalid size %u for buffer of size %" G_GSIZE_FORMAT
+ ", not adding tag %s", count, info.size, tag->gst_tag);
+ gst_buffer_unmap (reader->buffer, &info);
+ return;
+ }
+
+ if (!size_checked_add (&alloc_size, count, 1)) {
+ GST_WARNING ("Invalid size %u for buffer of size %" G_GSIZE_FORMAT
+ ", not adding tag %s", real_offset, info.size, tag->gst_tag);
+ gst_buffer_unmap (reader->buffer, &info);
+ return;
+ }
+
/* +1 because it could be a string without the \0 */
- data = malloc (sizeof (guint8) * count + 1);
+ data = malloc (alloc_size);
memcpy (data, info.data + real_offset, count);
data[count] = 0;
gst_buffer_unmap (reader->buffer, &info);
} else {
- data = malloc (sizeof (guint8) * count + 1);
+ data = malloc (count + 1);
memcpy (data, (guint8 *) offset_as_data, count);
data[count] = 0;
}
--
2.47.0

View File

@ -1,36 +0,0 @@
From 5e8fa4cb835a938aba72f2b7ccd3e784e5886df8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
Date: Tue, 13 Jun 2023 12:53:13 +0300
Subject: [PATCH 1/2] subparse: Look for the closing `>` of a tag after the
opening `<`
Previously when fixing up subrip markip, we were looking from the start
of the remaining buffer instead. Due to how skipping over closing tags
works, the remaining buffer will still contain the closing `>` of the
previous tag so if a unexpected closing tag is found after another
closing tag, we would potentially do an out of bounds memmove().
Fixes ZDI-CAN-20968
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2662
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4895>
---
gst/subparse/gstsubparse.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gst/subparse/gstsubparse.c b/gst/subparse/gstsubparse.c
index 425415874..e8d3ecaef 100644
--- a/gst/subparse/gstsubparse.c
+++ b/gst/subparse/gstsubparse.c
@@ -814,7 +814,7 @@ subrip_fix_up_markup (gchar ** p_txt, gconstpointer allowed_tags_ptr)
}
if (*next_tag == '<' && *(next_tag + 1) == '/') {
- end_tag = strchr (cur, '>');
+ end_tag = strchr (next_tag, '>');
if (end_tag) {
const gchar *last = NULL;
if (num_open_tags > 0)
--
2.43.0

View File

@ -1,33 +0,0 @@
From 889e0b00c2b3b4ecb8ab8116d6192ee7f3b37909 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
Date: Tue, 13 Jun 2023 12:58:26 +0300
Subject: [PATCH 2/2] subparse: Skip after the end of a valid closing tag
instead of only skipping `<`
This is a small optimization and avoids restarting the next parsing
iteration on already accepted data.
On its own it would also fix ZDI-CAN-20968 (see previous commit) but the
previous commit independently is also a valid fix for it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4895>
---
gst/subparse/gstsubparse.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gst/subparse/gstsubparse.c b/gst/subparse/gstsubparse.c
index e8d3ecaef..9336419e1 100644
--- a/gst/subparse/gstsubparse.c
+++ b/gst/subparse/gstsubparse.c
@@ -827,6 +827,8 @@ subrip_fix_up_markup (gchar ** p_txt, gconstpointer allowed_tags_ptr)
} else {
--num_open_tags;
g_ptr_array_remove_index (open_tags, num_open_tags);
+ cur = end_tag + 1;
+ continue;
}
}
}
--
2.43.0

View File

@ -1,42 +0,0 @@
From 303c62f25d9d8361f62c1eb00655efb6c4e89f21 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Thu, 22 Feb 2018 11:37:07 +0100
Subject: [PATCH 2/2] video: disable ORC_RESTRICT
We pass the same pointers to the video_chroma_up,
video_chroma_down fnd video_convert unctions, which causes the
compiler to complain.
---
gst-libs/gst/video/video-chroma.c | 2 ++
gst-libs/gst/video/video-converter.c | 2 ++
2 files changed, 4 insertions(+)
diff --git a/gst-libs/gst/video/video-chroma.c b/gst-libs/gst/video/video-chroma.c
index b994658a9..0cba36838 100644
--- a/gst-libs/gst/video/video-chroma.c
+++ b/gst-libs/gst/video/video-chroma.c
@@ -24,6 +24,8 @@
#include <string.h>
#include <stdio.h>
+#define ORC_RESTRICT
+
#include "video-orc.h"
#include "video-format.h"
diff --git a/gst-libs/gst/video/video-converter.c b/gst-libs/gst/video/video-converter.c
index 31e866a79..03c23a56f 100644
--- a/gst-libs/gst/video/video-converter.c
+++ b/gst-libs/gst/video/video-converter.c
@@ -29,6 +29,8 @@
#endif
#endif
+#define ORC_RESTRICT
+
#include "video-converter.h"
#include <glib.h>
--
2.14.3

12
SOURCES/xdg-compile.patch Normal file
View File

@ -0,0 +1,12 @@
diff -ru gst-plugins-base-1.18.4/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h gst-plugins-base-1.18.4.new/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h
--- gst-plugins-base-1.18.4/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h 2021-03-15 18:48:01.251275800 +0100
+++ gst-plugins-base-1.18.4.new/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h 2022-01-14 16:53:07.235319602 +0100
@@ -22,7 +22,7 @@
#define __GST_GL_WINDOW_WAYLAND_EGL_H__
#include <wayland-client.h>
-#include "xdg-shell-client-protocol.h"
+#include "../xdg-shell-client-protocol.h"
#include <wayland-egl.h>
#include <wayland-cursor.h>

View File

@ -5,8 +5,8 @@
#global shortcommit %(c=%{gitcommit}; echo ${c:0:5})
Name: gstreamer1-plugins-base
Version: 1.16.1
Release: 4%{?gitcommit:.git%{shortcommit}}%{?dist}
Version: 1.18.4
Release: 5%{?gitcommit:.git%{shortcommit}}%{?dist}
Summary: GStreamer streaming media framework base plugins
License: LGPLv2+
@ -19,21 +19,17 @@ Source0: gst-plugins-base-%{version}.tar.xz
Source0: http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-%{version}.tar.xz
%endif
Patch0: 0001-missing-plugins-Remove-the-mpegaudioversion-field.patch
Patch1: 0002-video-disable-ORC_RESTRICT.patch
Patch2: 0001-subparse-Look-for-the-closing-of-a-tag-after-the-ope.patch
Patch3: 0002-subparse-Skip-after-the-end-of-a-valid-closing-tag-i.patch
Patch4: 0001-exiftag-Prevent-integer-overflows-and-out-of-bounds-.patch
Patch1: xdg-compile.patch
BuildRequires: meson >= 0.48.0
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: gstreamer1-devel >= %{version}
BuildRequires: gobject-introspection-devel >= 1.31.1
BuildRequires: iso-codes-devel
BuildRequires: python3-devel
BuildRequires: alsa-lib-devel
%if 0%{?fedora}
BuildRequires: cdparanoia-devel
%endif
BuildRequires: libogg-devel >= 1.0
BuildRequires: libtheora-devel >= 1.1
BuildRequires: libvisual-devel
@ -43,24 +39,24 @@ BuildRequires: orc-devel >= 0.4.18
BuildRequires: pango-devel
BuildRequires: pkgconfig
BuildRequires: opus-devel
BuildRequires: gdk-pixbuf2-devel
BuildRequires: gtk3-devel
BuildRequires: libjpeg-turbo-devel
# for autogen.sh
BuildRequires: automake gettext-devel libtool
BuildRequires: chrpath
BuildRequires: mesa-libGL-devel
BuildRequires: mesa-libGLES-devel
BuildRequires: mesa-libGLU-devel
BuildRequires: mesa-libEGL-devel
BuildRequires: wayland-devel
BuildRequires: egl-wayland-devel
BuildRequires: graphene-devel
# pkgconfig-style deps specifically searched-for by autotools/configure
BuildRequires: pkgconfig(wayland-client) >= 1.0
BuildRequires: pkgconfig(wayland-cursor) >= 1.0
BuildRequires: pkgconfig(wayland-egl) >= 9.0
BuildRequires: pkgconfig(wayland-protocols) >= 1.15
# documentation
BuildRequires: gtk-doc >= 1.3
Requires: iso-codes
# libgstgl moved here
@ -105,6 +101,7 @@ The %{name}-devel package contains libraries and header files
for developing applications that use %{name}.
%if 0
%package devel-docs
Summary: Developer documentation for GStreamer Base plugins library
Requires: %{name} = %{version}-%{release}
@ -113,35 +110,29 @@ BuildArch: noarch
%description devel-docs
This %{name}-devel-docs package contains developer documentation
for the GStreamer Base Plugins library.
%endif
%prep
%setup -q -n gst-plugins-base-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%build
# die rpath (method of modifying libtool fails here)
NOCONFIGURE=1 \
./autogen.sh
%configure \
--with-package-name='GStreamer-plugins-base package' \
--with-package-origin='http://www.redhat.com' \
--enable-experimental \
--disable-fatal-warnings \
--disable-silent-rules \
--enable-gtk-doc \
--enable-orc
%make_build V=1
%meson \
-D package-name='Fedora GStreamer-plugins-base package' \
-D package-origin='http://download.fedoraproject.org' \
-D doc=disabled \
-D gtk_doc=disabled \
-D orc=enabled \
-D tremor=disabled \
-D tests=disabled \
-D examples=disabled \
-D cdparanoia=disabled
%meson_build
%install
%make_install
%meson_install
# Register as an AppStream component to be visible in the software center
#
@ -209,9 +200,6 @@ chrpath --delete $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/libgstencodin
chrpath --delete $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/libgstrawparse.so
chrpath --delete $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/libgstvideoscale.so
chrpath --delete $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/libgstplayback.so
%if 0%{?fedora}
chrpath --delete $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/libgstcdparanoia.so
%endif
chrpath --delete $RPM_BUILD_ROOT%{_libdir}/libgstriff-1.0.so.*
chrpath --delete $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/libgstxvimagesink.so
chrpath --delete $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/libgsttheora.so
@ -259,6 +247,9 @@ chrpath --delete $RPM_BUILD_ROOT%{_bindir}/gst-play-1.0
%{_libdir}/girepository-1.0/GstSdp-%{majorminor}.typelib
%{_libdir}/girepository-1.0/GstTag-%{majorminor}.typelib
%{_libdir}/girepository-1.0/GstVideo-%{majorminor}.typelib
%{_libdir}/girepository-1.0/GstGLEGL-%{majorminor}.typelib
%{_libdir}/girepository-1.0/GstGLWayland-%{majorminor}.typelib
%{_libdir}/girepository-1.0/GstGLX11-%{majorminor}.typelib
# base plugins without external dependencies
%{_libdir}/gstreamer-%{majorminor}/libgstadder.so
@ -286,9 +277,6 @@ chrpath --delete $RPM_BUILD_ROOT%{_bindir}/gst-play-1.0
# base plugins with dependencies
%{_libdir}/gstreamer-%{majorminor}/libgstalsa.so
%if 0%{?fedora}
%{_libdir}/gstreamer-%{majorminor}/libgstcdparanoia.so
%endif
%{_libdir}/gstreamer-%{majorminor}/libgstopengl.so
%{_libdir}/gstreamer-%{majorminor}/libgstlibvisual.so
%{_libdir}/gstreamer-%{majorminor}/libgstogg.so
@ -441,6 +429,7 @@ chrpath --delete $RPM_BUILD_ROOT%{_bindir}/gst-play-1.0
%{_includedir}/gstreamer-%{majorminor}/gst/video/video-event.h
%{_includedir}/gstreamer-%{majorminor}/gst/video/video-format.h
%{_includedir}/gstreamer-%{majorminor}/gst/video/video-frame.h
%{_includedir}/gstreamer-%{majorminor}/gst/video/video-hdr.h
%{_includedir}/gstreamer-%{majorminor}/gst/video/video-info.h
%{_includedir}/gstreamer-%{majorminor}/gst/video/video-multiview.h
%{_includedir}/gstreamer-%{majorminor}/gst/video/video-resampler.h
@ -478,39 +467,129 @@ chrpath --delete $RPM_BUILD_ROOT%{_bindir}/gst-play-1.0
%{_datadir}/gir-1.0/GstSdp-%{majorminor}.gir
%{_datadir}/gir-1.0/GstTag-%{majorminor}.gir
%{_datadir}/gir-1.0/GstVideo-%{majorminor}.gir
%{_datadir}/gir-1.0/GstGLEGL-%{majorminor}.gir
%{_datadir}/gir-1.0/GstGLWayland-%{majorminor}.gir
%{_datadir}/gir-1.0/GstGLX11-%{majorminor}.gir
# pkg-config files
%{_libdir}/pkgconfig/*.pc
%if 0
%files devel-docs
%doc %{_datadir}/gtk-doc/html/gst-plugins-base-libs-%{majorminor}
%doc %{_datadir}/gtk-doc/html/gst-plugins-base-plugins-%{majorminor}
%endif
%changelog
* Fri Nov 08 2024 Wim Taymans <wtaymans@redhat.com> - 1.16.1-4
- CVE-2024-4453 gstreamer1: EXIF Metadata Parsing Integer Overflow
- Resolves: RHEL-38509
* Fri Jan 14 2022 Wim Taymans <wtaymans@redhat.com> - 1.18.4-5
- Handle both compressed and uncompressed man pages
- Fix build with small patch
- Resolves: rhbz#2005247
* Wed Jan 17 2024 Wim Taymans <wtaymans@redhat.com> - 1.16.1-3
- CVE-2023-37328 gstreamer1-plugins-base: heap overwrite in subtitle parsing
- Resolves: RHEL-19472
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.18.4-4
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Wed Dec 9 2020 Wim Taymans <wtaymans@redhat.com> - 1.16.1-2
- Fix man file names for Flatpak builds
- Resolves: rhbz#1895935
* Thu Jul 15 2021 Jiri Kucera <jkucera@redhat.com> - 1.18.4-3
- Remove cdparanoia dependency on el9 and later
- Resolves: rhbz#1973678
* Thu Nov 15 2019 Wim Taymans <wtaymans@redhat.com> - 1.16.1-1
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1.18.4-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Mar 16 2021 Wim Taymans <wtaymans@redhat.com> - 1.18.4-1
- Update to 1.18.4
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Thu Dec 10 2020 Wim Taymans <wtaymans@redhat.com> - 1.18.2-1
- Update to 1.18.2
* Fri Oct 30 2020 Wim Taymans <wtaymans@redhat.com> - 1.18.1-1
- Update to 1.18.1
* Tue Sep 8 2020 Wim Taymans <wtaymans@redhat.com> - 1.18.0-1
- Update to 1.18.0
* Fri Aug 21 2020 Wim Taymans <wtaymans@redhat.com> - 1.17.90-1
- Update to 1.17.90
- Add new gir and typelib files
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.17.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 6 2020 Wim Taymans <wtaymans@redhat.com> - 1.17.2-1
- Update to 1.17.2
* Mon Jun 22 2020 Wim Taymans <wtaymans@redhat.com> - 1.17.1-1
- Update to 1.17.1
- Use meson
- disable docs
* Thu Apr 16 2020 Wim Taymans <wtaymans@redhat.com> - 1.16.2-3
- Add BR graphene-devel to build gltransform
- Fixes rhbz#1822387
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jan 2 2020 Wim Taymans <wtaymans@redhat.com> - 1.16.2-1
- Update to 1.16.2
* Tue Sep 24 2019 Wim Taymans <wtaymans@redhat.com> - 1.16.1-1
- Update to 1.16.1
- Resolves: rhbz#1756299
* Mon Sep 03 2018 Wim Taymans <wtaymans@redhat.com> - 1.14.0-4
- Remove cdparanoia dependency
- Resolves: rhbz#1605265
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon Aug 13 2018 Troy Dawson <tdawson@redhat.com> - 1.14.0-3
- Add BuildRequest python3-devel
* Tue Apr 23 2019 Wim Taymans <wtaymans@redhat.com> - 1.16.0-1
- Update to 1.16.0
* Thu Mar 07 2019 Rex Dieter <rdieter@fedoraproject.org> - 1.15.2-2
- update wayland-related build deps, --enable-gtk-doc
* Thu Mar 07 2019 Rex Dieter <rdieter@fedoraproject.org> - 1.15.2-1
- %%build: --disable-gtk-doc to workaround FTBFS (hopefully temporary)
* Fri Mar 01 2019 Wim Taymans <wtaymans@redhat.com> - 1.15.2-1
- Update to 1.15.2
- Add egl-wayland dep
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.15.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon Jan 28 2019 Wim Taymans <wtaymans@redhat.com> - 1.15.2-1
- rebuild for dependencies
* Fri Jan 25 2019 Wim Taymans <wtaymans@redhat.com> - 1.15.1-1
- Update to 1.15.1
* Fri Jan 11 2019 Bastien Nocera <bnocera@redhat.com> - 1.14.4-2
+ gstreamer1-plugins-base-1.14.4-2
- Fix thumbnail colours for 10-bit MPEG-4 files
* Wed Oct 03 2018 Wim Taymans <wtaymans@redhat.com> - 1.14.4-1
- Update to 1.14.4
* Tue Sep 18 2018 Wim Taymans <wtaymans@redhat.com> - 1.14.3-1
- Update to 1.14.3
* Mon Jul 23 2018 Wim Taymans <wtaymans@redhat.com> - 1.14.2-1
- Update to 1.14.2
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri May 25 2018 Wim Taymans <wtaymans@redhat.com> - 1.14.1-3
- rebuild (#1581325)
* Tue May 22 2018 Rex Dieter <rdieter@fedoraproject.org> - 1.14.1-2
- rebuild (file)
* Mon May 21 2018 Wim Taymans <wtaymans@redhat.com> - 1.14.1-1
- Update to 1.14.1
- Remove obsolete patches
* Mon Mar 26 2018 Tomas Popela <tpopela@redhat.com> - 1.14.0-2
- Enable Wayland support (previously disabled due to missing wayland-devel