summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--user/faad2/APKBUILD9
-rw-r--r--user/faad2/overflow.patch25
2 files changed, 31 insertions, 3 deletions
diff --git a/user/faad2/APKBUILD b/user/faad2/APKBUILD
index c76894b27..3794942b9 100644
--- a/user/faad2/APKBUILD
+++ b/user/faad2/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer:
pkgname=faad2
pkgver=2.8.8
-pkgrel=0
+pkgrel=1
pkgdesc="ISO AAC audio decoder"
url="https://www.audiocoding.com/"
arch="all"
@@ -10,7 +10,9 @@ license="GPL-2.0+"
subpackages="$pkgname-dev $pkgname-doc"
depends=""
makedepends="autoconf automake libtool"
-source="https://downloads.sourceforge.net/sourceforge/faac/$pkgname-$pkgver.tar.gz"
+source="https://downloads.sourceforge.net/sourceforge/faac/$pkgname-$pkgver.tar.gz
+ overflow.patch
+ "
build() {
cd "$builddir"
@@ -26,4 +28,5 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="3275d292b2a9fe984842962f4d81202894bddd17033f7cd6df95466554cc968dfcbf2890ae8b1df37da0cd25d645cca0a687f07e39b9fc37dd004fd5956a82af faad2-2.8.8.tar.gz"
+sha512sums="3275d292b2a9fe984842962f4d81202894bddd17033f7cd6df95466554cc968dfcbf2890ae8b1df37da0cd25d645cca0a687f07e39b9fc37dd004fd5956a82af faad2-2.8.8.tar.gz
+f9266ca424d1e4f5b46c2f6b4b1568caee86849d2b6edc3b6c1fb7cf08fd736c0a8fe2c096c3bc64674e4fa40619c24d45d6d6125f11360517feb09a5c996a34 overflow.patch"
diff --git a/user/faad2/overflow.patch b/user/faad2/overflow.patch
new file mode 100644
index 000000000..5a198f8d8
--- /dev/null
+++ b/user/faad2/overflow.patch
@@ -0,0 +1,25 @@
+--- faad2/libfaad/bits.c 2007-11-01 13:33:29.000000000 +0100
++++ faad2.new/libfaad/bits.c 2019-03-25 17:29:26.134199188 +0100
+@@ -167,7 +167,10 @@
+ int words = bits >> 5;
+ int remainder = bits & 0x1F;
+
+- ld->bytes_left = ld->buffer_size - words*4;
++ if (ld->buffer_size < words * 4)
++ ld->bytes_left = 0;
++ else
++ ld->bytes_left = ld->buffer_size - words*4;
+
+ if (ld->bytes_left >= 4)
+ {
+--- faad2/libfaad/syntax.c 2019-03-25 17:57:36.930937066 +0100
++++ faad2.new/libfaad/syntax.c 2019-03-25 17:49:26.135368525 +0100
+@@ -2292,6 +2292,8 @@
+ while ((drc->additional_excluded_chns[n-1] = faad_get1bit(ld
+ DEBUGVAR(1,104,"excluded_channels(): additional_excluded_chns"))) == 1)
+ {
++ if (i >= MAX_CHANNELS - num_excl_chan - 7)
++ return n;
+ for (i = num_excl_chan; i < num_excl_chan+7; i++)
+ {
+ drc->exclude_mask[i] = faad_get1bit(ld