aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2015-02-02 00:22:51 -0500
committerMark H Weaver <mhw@netris.org>2015-02-02 03:54:42 -0500
commit3b02429c8a0b476120cb1bc63c9ddd4a3a44a37b (patch)
tree370417e7b1ba27396851ac22e503ec169019f9b0 /gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch
parent38012ed5cdf211050d64be7eb1f6164defcb9a68 (diff)
downloadguix-3b02429c8a0b476120cb1bc63c9ddd4a3a44a37b.tar
guix-3b02429c8a0b476120cb1bc63c9ddd4a3a44a37b.tar.gz
gnu: libvpx: Apply bug fixes.
Fixes build on armhf. * gnu/packages/patches/libvpx-fix-armhf-link.patch, gnu/packages/patches/libvpx-fix-ssse3-quantize.patch, gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch: New files. * gnu-system.am (dist_patch_DATA): Add them. * gnu/packages/video.scm (libvpx): Add patches. On armhf, add additional configure flags to avoid requiring support for NEON.
Diffstat (limited to 'gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch')
-rw-r--r--gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch b/gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch
new file mode 100644
index 0000000000..6aec8aa2f0
--- /dev/null
+++ b/gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch
@@ -0,0 +1,35 @@
+Copied from Debian.
+
+# HG changeset patch
+# User Ralph Giles <giles@mozilla.com>
+# Date 1412209683 25200
+# Node ID 6023f0b4f8ba49dd117106cc98cd8007c2142bf6
+# Parent 8c431dcec0ffde13988d47eacf341113ea883245
+Bug 1063327 - Reject vp9 frames with invalid tiles. r=kinetik, a=abillings
+
+diff --git a/vp9/decoder/vp9_decodframe.c b/vp9/decoder/vp9_decodframe.c
+--- a/vp9/decoder/vp9_decodframe.c
++++ b/vp9/decoder/vp9_decodframe.c
+@@ -863,16 +863,21 @@ static size_t get_tile(const uint8_t *co
+
+ if (!is_last) {
+ if (!read_is_valid(*data, 4, data_end))
+ vpx_internal_error(error_info, VPX_CODEC_CORRUPT_FRAME,
+ "Truncated packet or corrupt tile length");
+
+ size = read_be32(*data);
+ *data += 4;
++
++ if (size > data_end - *data) {
++ vpx_internal_error(error_info, VPX_CODEC_CORRUPT_FRAME,
++ "Truncated packet or corrupt tile size");
++ }
+ } else {
+ size = data_end - *data;
+ }
+ return size;
+ }
+
+ typedef struct TileBuffer {
+ const uint8_t *data;
+