gst-plugins-good: fix integer overrun for mulawdec
authorWang Zidan <b50113@freescale.com>
Tue, 22 Jul 2014 06:49:19 +0000 (14:49 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 23 Jul 2014 20:59:14 +0000 (21:59 +0100)
There might be more than 65535 samples in a chunk of data, so use
32 bit integer instead of 16 bit.

(From OE-Core rev: 60de6e5d9d3dec482256ea4db8837204ca3ba628)

Signed-off-by: Wang Zidan <b50113@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch [new file with mode: 0644]
meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb

diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch b/meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch
new file mode 100644 (file)
index 0000000..48b8e98
--- /dev/null
@@ -0,0 +1,47 @@
+From ce94b2c2b91b6db190c121860e12a6afafce7ae1 Mon Sep 17 00:00:00 2001
+From: Roland Krikava <rkrikava@gmail.com>
+Date: Fri, 2 Nov 2012 12:38:44 -0400
+Subject: [PATCH 407/440] mulawdec: fix integer overrun
+
+There might be more than 65535 samples in a chunk of data.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=687469
+
+Commit - 3be45f70220310ec1c60d819f90b5f2ae03b5d83 in 0.10 branch
+
+Upstream Status:  Backported
+
+Signed-off-by: Roland Krikava <rkrikava@gmail.com>
+---
+ gst/law/mulaw-conversion.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/gst/law/mulaw-conversion.c b/gst/law/mulaw-conversion.c
+index 8afae80..190a9f5 100644
+--- a/gst/law/mulaw-conversion.c
++++ b/gst/law/mulaw-conversion.c
+@@ -51,9 +51,10 @@ mulaw_encode (gint16 * in, guint8 * out, gint numsamples)
+     7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+     7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
+   };
+-  gint16 sign, exponent, mantissa, i;
++  gint16 sign, exponent, mantissa;
+   gint16 sample;
+   guint8 ulawbyte;
++  gint i;
+   for (i = 0; i < numsamples; i++) {
+     sample = in[i];
+@@ -102,7 +103,8 @@ mulaw_decode (guint8 * in, gint16 * out, gint numsamples)
+   static gint16 exp_lut[8] = { 0, 132, 396, 924, 1980, 4092, 8316, 16764 };
+   gint16 sign, exponent, mantissa;
+   guint8 ulawbyte;
+-  gint16 linear, i;
++  gint16 linear;
++  gint i;
+   for (i = 0; i < numsamples; i++) {
+     ulawbyte = in[i];
+-- 
+1.7.9.5
+
index 88f90f3..4ccdec0 100644 (file)
@@ -26,9 +26,10 @@ DEPENDS += "gst-plugins-base gconf cairo libpng zlib libid3tag flac \
 
 inherit gettext gconf
 
-SRC_URI += "file://0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch"
-SRC_URI += "file://0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch"
-
+SRC_URI += "file://0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch \
+            file://0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch \
+            file://0407-mulawdec-fix-integer-overrun.patch \
+"
 EXTRA_OECONF += "--disable-aalib --disable-esd --disable-shout2 --disable-libcaca --disable-hal \
                  --disable-examples --disable-taglib"