aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2014-02-25 13:41:33 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2014-02-25 13:41:33 +0000
commit4caf03d1ac6af8d42281f2154cce32d83ca8a2d2 (patch)
tree88fce465c159d2297e0d578fc48f1eec56e8db4f
parentce4155be655e03a802faac4bddac748077354ad5 (diff)
downloadaports-4caf03d1ac6af8d42281f2154cce32d83ca8a2d2.tar.bz2
aports-4caf03d1ac6af8d42281f2154cce32d83ca8a2d2.tar.xz
main/libpng: security fix for CVE-2013-6954
fixes #2699
-rw-r--r--main/libpng/APKBUILD17
-rw-r--r--main/libpng/libpng15-CVE-2013-6954.patch35
2 files changed, 48 insertions, 4 deletions
diff --git a/main/libpng/APKBUILD b/main/libpng/APKBUILD
index 965573d344..65d06ff680 100644
--- a/main/libpng/APKBUILD
+++ b/main/libpng/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libpng
pkgver=1.5.15
-pkgrel=0
+pkgrel=1
pkgdesc="Portable Network Graphics library"
url="http://www.libpng.org/"
arch="all"
@@ -13,12 +13,18 @@ makedepends="$depends_dev gawk"
subpackages="$pkgname-doc $pkgname-dev"
source="http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
http://downloads.sourceforge.net/project/libpng-apng/libpng15/$pkgver/libpng-$pkgver-apng.patch.gz
+ libpng15-CVE-2013-6954.patch
"
_builddir="$srcdir/$pkgname-$pkgver"
prepare() {
cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
gunzip -c "$srcdir"/libpng-$pkgver-apng.patch.gz | patch -p1 || return 1
}
@@ -37,8 +43,11 @@ package() {
}
md5sums="ea24254980fd820964a710e4d2a947c7 libpng-1.5.15.tar.gz
-3ae9ea7e4bd201f0b25e25cd6049b094 libpng-1.5.15-apng.patch.gz"
+3ae9ea7e4bd201f0b25e25cd6049b094 libpng-1.5.15-apng.patch.gz
+8cdbf47318e9f4710a957a4704f1dd6e libpng15-CVE-2013-6954.patch"
sha256sums="726224b7a6b5ad0032078bf3fb5a84ffb5ad683a33a62d67f7be5eb5bc37d076 libpng-1.5.15.tar.gz
-e6c46fafd5fbea6250daa07c1b7be2b9571a7cc4c99e985c594666a33de52f6b libpng-1.5.15-apng.patch.gz"
+e6c46fafd5fbea6250daa07c1b7be2b9571a7cc4c99e985c594666a33de52f6b libpng-1.5.15-apng.patch.gz
+0c039a6cf4476b239ffc9c9f92ed48aabc9678e30b9c982ab6996dfddf6696f2 libpng15-CVE-2013-6954.patch"
sha512sums="3d4f04bc33150177c9ca46543d92884dd3e6857494b99f7cc171fc90371b345495ae777b11bbed88978ec4a00daab632431b3efa78420b0abb659d5cf5690bc7 libpng-1.5.15.tar.gz
-631f4bb60b5e0a09e8fcb794bb240d39beae832a6aca9dab2d382ba2444bb2f7cb5a72dd02976cbe0972371e4a6238aa00b017ac4d8956c5afc0ec8671dcdbd6 libpng-1.5.15-apng.patch.gz"
+631f4bb60b5e0a09e8fcb794bb240d39beae832a6aca9dab2d382ba2444bb2f7cb5a72dd02976cbe0972371e4a6238aa00b017ac4d8956c5afc0ec8671dcdbd6 libpng-1.5.15-apng.patch.gz
+d4b390479cadd7637f71e494709a7628671d61bacf10a522547f53be58acc08088e23867ae05047d7a9f53985c7eca78616f28ecec82e785fd18cde84ed9dd86 libpng15-CVE-2013-6954.patch"
diff --git a/main/libpng/libpng15-CVE-2013-6954.patch b/main/libpng/libpng15-CVE-2013-6954.patch
new file mode 100644
index 0000000000..9619d8a931
--- /dev/null
+++ b/main/libpng/libpng15-CVE-2013-6954.patch
@@ -0,0 +1,35 @@
+diff --git a/pngrtran.c b/pngrtran.c
+index 5673193..04eecee 100644
+--- a/pngrtran.c
++++ b/pngrtran.c
+@@ -1900,6 +1900,9 @@ png_read_transform_info(png_structp png_ptr, png_infop info_ptr)
+
+ info_ptr->bit_depth = 8;
+ info_ptr->num_trans = 0;
++
++ if (png_ptr->palette == NULL)
++ png_error (png_ptr, "Palette is NULL in indexed image");
+ }
+ else
+ {
+diff --git a/pngset.c b/pngset.c
+index 4177e62..3876103 100644
+--- a/pngset.c
++++ b/pngset.c
+@@ -524,6 +524,16 @@ png_set_PLTE(png_structp png_ptr, png_infop info_ptr,
+ return;
+ }
+ }
++ if ((num_palette > 0 && palette == NULL) ||
++ (num_palette == 0
++ # ifdef PNG_MNG_FEATURES_SUPPORTED
++ && (png_ptr->mng_features_permitted & PNG_FLAG_MNG_EMPTY_PLTE) == 0
++ # endif
++ ))
++ {
++ png_error(png_ptr, "Invalid palette");
++ return;
++ }
+
+ /* It may not actually be necessary to set png_ptr->palette here;
+ * we do it for backward compatibility with the way the png_handle_tRNS