Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
66cddb8d17 | ||
|
a450eb2bb7 |
50
0001-vmncdec-Sanity-check-width-height-before-using-it.patch
Normal file
50
0001-vmncdec-Sanity-check-width-height-before-using-it.patch
Normal file
@ -0,0 +1,50 @@
|
||||
From 26f4b2c203d6d0ef0c8204a48dba504870c2cfdf Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@redhat.com>
|
||||
Date: Tue, 6 Dec 2016 10:24:03 +0100
|
||||
Subject: [PATCH 1/2] vmncdec: Sanity-check width/height before using it
|
||||
|
||||
We will allocate a screen area of width*height*bpp bytes, however this
|
||||
calculation can easily overflow if too high width or height are given
|
||||
inside the stream. Nonetheless we would just assume that enough memory
|
||||
was allocated, try to fill it and overwrite as much memory as wanted.
|
||||
|
||||
Also allocate the screen area filled with zeroes to ensure that we start
|
||||
with full-black and not any random (or not so random) data.
|
||||
|
||||
https://scarybeastsecurity.blogspot.gr/2016/11/0day-poc-risky-design-decisions-in.html
|
||||
|
||||
Ideally we should just remove this plugin in favour of the one in
|
||||
gst-libav, which generally seems to be of better code quality.
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=774533
|
||||
---
|
||||
gst/vmnc/vmncdec.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gst/vmnc/vmncdec.c b/gst/vmnc/vmncdec.c
|
||||
index 08085b5..c83e315 100644
|
||||
--- a/gst/vmnc/vmncdec.c
|
||||
+++ b/gst/vmnc/vmncdec.c
|
||||
@@ -370,7 +370,7 @@ vmnc_handle_wmvi_rectangle (GstVMncDec * dec, struct RfbRectangle *rect,
|
||||
|
||||
if (dec->imagedata)
|
||||
g_free (dec->imagedata);
|
||||
- dec->imagedata = g_malloc (dec->format.width * dec->format.height *
|
||||
+ dec->imagedata = g_malloc0 (dec->format.width * dec->format.height *
|
||||
dec->format.bytes_per_pixel);
|
||||
GST_DEBUG_OBJECT (dec, "Allocated image data at %p", dec->imagedata);
|
||||
|
||||
@@ -901,6 +901,10 @@ vmnc_handle_packet (GstVMncDec * dec, const guint8 * data, int len,
|
||||
GST_WARNING_OBJECT (dec, "Rectangle out of range, type %d", r.type);
|
||||
return ERROR_INVALID;
|
||||
}
|
||||
+ } else if (r.width > 16384 || r.height > 16384) {
|
||||
+ GST_WARNING_OBJECT (dec, "Width or height too high: %ux%u", r.width,
|
||||
+ r.height);
|
||||
+ return ERROR_INVALID;
|
||||
}
|
||||
|
||||
switch (r.type) {
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,28 @@
|
||||
From 3003cbe1624cc6daa416caba9c1dce0180f3837c Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@redhat.com>
|
||||
Date: Wed, 7 Dec 2016 09:37:10 +0100
|
||||
Subject: [PATCH 2/2] h264parse: Ensure codec_data has the required size when
|
||||
reading number of SPS
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=774896
|
||||
---
|
||||
gst/videoparsers/gsth264parse.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/gst/videoparsers/gsth264parse.c b/gst/videoparsers/gsth264parse.c
|
||||
index cf81657..4c14f2b 100644
|
||||
--- a/gst/videoparsers/gsth264parse.c
|
||||
+++ b/gst/videoparsers/gsth264parse.c
|
||||
@@ -1605,6 +1605,9 @@ gst_h264_parse_set_caps (GstBaseParse * parse, GstCaps * caps)
|
||||
off = nalu.offset + nalu.size;
|
||||
}
|
||||
|
||||
+ if (off >= size) {
|
||||
+ goto avcc_too_small;
|
||||
+ }
|
||||
num_pps = data[off];
|
||||
off++;
|
||||
|
||||
--
|
||||
2.9.3
|
||||
|
@ -14,7 +14,7 @@
|
||||
Summary: GStreamer streaming media framework "bad" plug-ins
|
||||
Name: gstreamer-plugins-bad-free
|
||||
Version: 0.10.23
|
||||
Release: 33%{?dist}
|
||||
Release: 35%{?dist}
|
||||
# The freeze and nfs plugins are LGPLv2 (only)
|
||||
License: LGPLv2+ and LGPLv2
|
||||
Group: Applications/Multimedia
|
||||
@ -40,6 +40,8 @@ Patch8: 0001-modplug-Specify-directory-when-including-stdafx.h.patch
|
||||
Patch9: gst-plugins-bad-0.10.23-drop-vpx-compat-defines.patch
|
||||
# Fix building docs
|
||||
Patch10: gst-plugins-bad-0.10.23-docbuild.patch
|
||||
Patch11: 0001-vmncdec-Sanity-check-width-height-before-using-it.patch
|
||||
Patch12: 0002-h264parse-Ensure-codec_data-has-the-required-size-wh.patch
|
||||
|
||||
Requires: %{gstreamer} >= %{gst_minver}
|
||||
BuildRequires: %{gstreamer}-devel >= %{gst_minver}
|
||||
@ -174,6 +176,8 @@ aren't tested well enough, or the code is not of good enough quality.
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1 -b .docbuild
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
sed -i 's/opencv <= 2.3.1/opencv <= 2.4.3/g' configure
|
||||
|
||||
|
||||
@ -185,7 +189,7 @@ sed -i 's/opencv <= 2.3.1/opencv <= 2.4.3/g' configure
|
||||
--enable-debug --disable-static --enable-gtk-doc --enable-experimental \
|
||||
--disable-divx --disable-dts --disable-faac --disable-faad --disable-nas \
|
||||
--disable-mimic --disable-libmms --disable-mpeg2enc --disable-mplex \
|
||||
--disable-neon --disable-openal --disable-rtmp --disable-xvid
|
||||
--disable-neon --disable-openal --disable-rtmp --disable-xvid --disable-nsf
|
||||
make %{?_smp_mflags}
|
||||
|
||||
|
||||
@ -261,7 +265,6 @@ rm $RPM_BUILD_ROOT%{_libdir}/*.la
|
||||
%{_libdir}/gstreamer-%{majorminor}/libgstmpegvideoparse.so
|
||||
%{_libdir}/gstreamer-%{majorminor}/libgstmve.so
|
||||
%{_libdir}/gstreamer-%{majorminor}/libgstmxf.so
|
||||
%{_libdir}/gstreamer-%{majorminor}/libgstnsf.so
|
||||
%{_libdir}/gstreamer-%{majorminor}/libgstnuvdemux.so
|
||||
%{_libdir}/gstreamer-%{majorminor}/libgstpatchdetect.so
|
||||
%{_libdir}/gstreamer-%{majorminor}/libgstpcapparse.so
|
||||
@ -369,6 +372,14 @@ rm $RPM_BUILD_ROOT%{_libdir}/*.la
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Dec 07 2016 Wim Taymans <wtaymans@redhat.com> - 0.10.23-35
|
||||
- vmncdec: Sanity-check width/height before using it
|
||||
- h264parse: Ensure codec_data has the required size when reading number of SPS
|
||||
(#1401945)
|
||||
|
||||
* Wed Nov 30 2016 Wim Taymans <wtaymans@redhat.com> - 0.10.23-34
|
||||
- Remove insecure nsf plugin (#1395126)
|
||||
|
||||
* Tue Aug 09 2016 Nils Philippsen <nils@redhat.com> - 0.10.23-33
|
||||
- fix bogus dates in changelog
|
||||
- fix building docs
|
||||
|
Loading…
Reference in New Issue
Block a user