From f4264e218200b57dd39b57531ba086d107e967b5 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 24 Jul 2013 01:48:51 -0700 Subject: Wed Jul 24 01:48:49 PDT 2013 --- ...oid-dereferencing-NULL-pointer-possibly-r.patch | 106 ---------------- ...lculate-our-own-zlib-windowBits-when-deco.patch | 133 --------------------- extra/libpng/PKGBUILD | 28 ++--- ...djust-apng-patch-for-libpng16-git-changes.patch | 19 --- 4 files changed, 9 insertions(+), 277 deletions(-) delete mode 100644 extra/libpng/0001-libpng16-Avoid-dereferencing-NULL-pointer-possibly-r.patch delete mode 100644 extra/libpng/0002-libpng16-Calculate-our-own-zlib-windowBits-when-deco.patch delete mode 100644 extra/libpng/adjust-apng-patch-for-libpng16-git-changes.patch (limited to 'extra/libpng') diff --git a/extra/libpng/0001-libpng16-Avoid-dereferencing-NULL-pointer-possibly-r.patch b/extra/libpng/0001-libpng16-Avoid-dereferencing-NULL-pointer-possibly-r.patch deleted file mode 100644 index e67728051..000000000 --- a/extra/libpng/0001-libpng16-Avoid-dereferencing-NULL-pointer-possibly-r.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 56d6bc2e8855d25e03816509a0137c3a70410ae6 Mon Sep 17 00:00:00 2001 -From: Glenn Randers-Pehrson -Date: Mon, 29 Apr 2013 08:57:14 -0500 -Subject: [PATCH 06/10] [libpng16] Avoid dereferencing NULL pointer possibly - returned from - -png_create_write_struct() (Andrew Church). ---- - ANNOUNCE | 6 ++++-- - CHANGES | 4 +++- - pngwrite.c | 65 +++++++++++++++++++++++++++++++------------------------------- - 3 files changed, 39 insertions(+), 36 deletions(-) - - (foutrelis: pruned non-code changes to apply cleanly to libpng 1.6.2.) - -diff --git a/pngwrite.c b/pngwrite.c -index 33924aa..b71a3d3 100644 ---- a/pngwrite.c -+++ b/pngwrite.c -@@ -494,51 +494,50 @@ png_create_write_struct_2,(png_const_charp user_png_ver, png_voidp error_ptr, - png_structrp png_ptr = png_create_png_struct(user_png_ver, error_ptr, - error_fn, warn_fn, mem_ptr, malloc_fn, free_fn); - #endif /* PNG_USER_MEM_SUPPORTED */ -+ if (png_ptr != NULL) -+ { -+ /* Set the zlib control values to defaults; they can be overridden by the -+ * application after the struct has been created. -+ */ -+ png_ptr->zbuffer_size = PNG_ZBUF_SIZE; - -- /* Set the zlib control values to defaults; they can be overridden by the -- * application after the struct has been created. -- */ -- png_ptr->zbuffer_size = PNG_ZBUF_SIZE; -- -- /* The 'zlib_strategy' setting is irrelevant because png_default_claim in -- * pngwutil.c defaults it according to whether or not filters will be used, -- * and ignores this setting. -- */ -- png_ptr->zlib_strategy = PNG_Z_DEFAULT_STRATEGY; -- png_ptr->zlib_level = PNG_Z_DEFAULT_COMPRESSION; -- png_ptr->zlib_mem_level = 8; -- png_ptr->zlib_window_bits = 15; -- png_ptr->zlib_method = 8; -+ /* The 'zlib_strategy' setting is irrelevant because png_default_claim in -+ * pngwutil.c defaults it according to whether or not filters will be -+ * used, and ignores this setting. -+ */ -+ png_ptr->zlib_strategy = PNG_Z_DEFAULT_STRATEGY; -+ png_ptr->zlib_level = PNG_Z_DEFAULT_COMPRESSION; -+ png_ptr->zlib_mem_level = 8; -+ png_ptr->zlib_window_bits = 15; -+ png_ptr->zlib_method = 8; - - #ifdef PNG_WRITE_COMPRESSED_TEXT_SUPPORTED -- png_ptr->zlib_text_strategy = PNG_TEXT_Z_DEFAULT_STRATEGY; -- png_ptr->zlib_text_level = PNG_TEXT_Z_DEFAULT_COMPRESSION; -- png_ptr->zlib_text_mem_level = 8; -- png_ptr->zlib_text_window_bits = 15; -- png_ptr->zlib_text_method = 8; -+ png_ptr->zlib_text_strategy = PNG_TEXT_Z_DEFAULT_STRATEGY; -+ png_ptr->zlib_text_level = PNG_TEXT_Z_DEFAULT_COMPRESSION; -+ png_ptr->zlib_text_mem_level = 8; -+ png_ptr->zlib_text_window_bits = 15; -+ png_ptr->zlib_text_method = 8; - #endif /* PNG_WRITE_COMPRESSED_TEXT_SUPPORTED */ - -- /* This is a highly dubious configuration option; by default it is off, but -- * it may be appropriate for private builds that are testing extensions not -- * conformant to the current specification, or of applications that must not -- * fail to write at all costs! -- */ --# ifdef PNG_BENIGN_WRITE_ERRORS_SUPPORTED -+ /* This is a highly dubious configuration option; by default it is off, -+ * but it may be appropriate for private builds that are testing -+ * extensions not conformant to the current specification, or of -+ * applications that must not fail to write at all costs! -+ */ -+#ifdef PNG_BENIGN_WRITE_ERRORS_SUPPORTED - png_ptr->flags |= PNG_FLAG_BENIGN_ERRORS_WARN; - /* In stable builds only warn if an application error can be completely - * handled. - */ --# endif -+#endif - -- /* App warnings are warnings in release (or release candidate) builds but -- * are errors during development. -- */ --# if PNG_LIBPNG_BUILD_BASE_TYPE >= PNG_LIBPNG_BUILD_RC -+ /* App warnings are warnings in release (or release candidate) builds but -+ * are errors during development. -+ */ -+#if PNG_LIBPNG_BUILD_BASE_TYPE >= PNG_LIBPNG_BUILD_RC - png_ptr->flags |= PNG_FLAG_APP_WARNINGS_WARN; --# endif -+#endif - -- if (png_ptr != NULL) -- { - /* TODO: delay this, it can be done in png_init_io() (if the app doesn't - * do it itself) avoiding setting the default function if it is not - * required. --- -1.8.2.2 - diff --git a/extra/libpng/0002-libpng16-Calculate-our-own-zlib-windowBits-when-deco.patch b/extra/libpng/0002-libpng16-Calculate-our-own-zlib-windowBits-when-deco.patch deleted file mode 100644 index 0a305c150..000000000 --- a/extra/libpng/0002-libpng16-Calculate-our-own-zlib-windowBits-when-deco.patch +++ /dev/null @@ -1,133 +0,0 @@ -From 127b08a265f99ce517ea31ec7988a91fc17da4d9 Mon Sep 17 00:00:00 2001 -From: Glenn Randers-Pehrson -Date: Sun, 5 May 2013 22:13:47 -0500 -Subject: [PATCH 09/10] [libpng16] Calculate our own zlib windowBits when - decoding rather than - -trusting the CMF bytes in the PNG datastream. ---- - ANNOUNCE | 6 +++-- - CHANGES | 5 +++- - pngrutil.c | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- - 3 files changed, 88 insertions(+), 10 deletions(-) - - (foutrelis: pruned non-code changes to apply cleanly to libpng 1.6.2.) - -diff --git a/pngrutil.c b/pngrutil.c -index 01c3679..9c10e26 100644 ---- a/pngrutil.c -+++ b/pngrutil.c -@@ -18,8 +18,6 @@ - - #ifdef PNG_READ_SUPPORTED - --#define png_strtod(p,a,b) strtod(a,b) -- - png_uint_32 PNGAPI - png_get_uint_31(png_const_structrp png_ptr, png_const_bytep buf) - { -@@ -4165,6 +4163,75 @@ png_read_finish_row(png_structrp png_ptr) - } - #endif /* PNG_SEQUENTIAL_READ_SUPPORTED */ - -+#ifdef PNG_READ_OPTIMIZE_WINDOWBITS_SUPPORTED -+/* This is the code to to select a windowBits value to match the smallest -+ * possible sliding window needed to contain the entire uncompressed image. -+ */ -+static unsigned int -+required_window_bits(png_alloc_size_t data_size) -+{ -+ unsigned int windowBits = 15; -+ if (data_size <= 16384) /* else windowBits must be 15 */ -+ { -+ unsigned int half_z_window_size = 1U << (windowBits-1); /* 16384 */ -+ -+ do -+ { -+ half_z_window_size >>= 1; -+ --windowBits; -+ } -+ while (windowBits > 8 && data_size <= half_z_window_size); -+ } -+ return windowBits; -+} -+/* This is used below to find the size of an image to pass to png_deflate_claim, -+ * so it only needs to be accurate if the size is less than 16384 bytes (the -+ * point at which a lower LZ window size can be used.) -+ * -+ * To do: merge this with png_image_size() in pngwutil.c and put the result -+ * in png.c as a PNG_INTERNAL_FUNCTION. -+ */ -+static png_alloc_size_t -+png_read_image_size(png_structrp png_ptr) -+{ -+ /* Only return sizes up to the maximum of a png_uint_32, do this by limiting -+ * the width and height used to 15 bits. -+ */ -+ png_uint_32 h = png_ptr->height; -+ -+ if (png_ptr->rowbytes < 32768 && h < 32768) -+ { -+ if (png_ptr->interlaced) -+ { -+ /* Interlacing makes the image larger because of the replication of -+ * both the filter byte and the padding to a byte boundary. -+ */ -+ png_uint_32 w = png_ptr->width; -+ unsigned int pd = png_ptr->pixel_depth; -+ png_alloc_size_t cb_base; -+ int pass; -+ -+ for (cb_base=0, pass=0; pass<=6; ++pass) -+ { -+ png_uint_32 pw = PNG_PASS_COLS(w, pass); -+ -+ if (pw > 0) -+ cb_base += (PNG_ROWBYTES(pd, pw)+1) * PNG_PASS_ROWS(h, pass); -+ } -+ -+ return cb_base; -+ } -+ -+ else -+ return (png_ptr->rowbytes+1) * h; -+ } -+ -+ else -+ return 0xffffffffU; -+} -+ -+#endif /* PNG_READ_OPTIMIZE_WINDOWBITS_SUPPORTED */ -+ - void /* PRIVATE */ - png_read_start_row(png_structrp png_ptr) - { -@@ -4449,14 +4516,20 @@ defined(PNG_USER_TRANSFORM_PTR_SUPPORTED) - png_free(png_ptr, buffer); - } - -- /* Finally claim the zstream for the inflate of the IDAT data, use the bits -- * value from the stream (note that this will result in a fatal error if the -- * IDAT stream has a bogus deflate header window_bits value, but this should -- * not be happening any longer!) -+ /* Finally claim the zstream for the inflate of the IDAT data, using the -+ * windowBts predicted from the uncompressed data size, not the value from -+ * the stream. If READ_OPTIMIZE_WINDOWBITS_SUPPORTED is not defined, then -+ * simply use a 32kbyte window (windowBits=15). - */ -- if (png_inflate_claim(png_ptr, png_IDAT, 0) != Z_OK) -+#ifdef PNG_READ_OPTIMIZE_WINDOWBITS_SUPPORTED -+ if (png_inflate_claim(png_ptr, png_IDAT, -+ required_window_bits(png_read_image_size(png_ptr))) != Z_OK) -+#else -+ if (png_inflate_claim(png_ptr, png_IDAT, 15) != Z_OK) -+#endif - png_error(png_ptr, png_ptr->zstream.msg); - - png_ptr->flags |= PNG_FLAG_ROW_INIT; - } -+ - #endif /* PNG_READ_SUPPORTED */ --- -1.8.2.2 - diff --git a/extra/libpng/PKGBUILD b/extra/libpng/PKGBUILD index ab48303fc..936a01b78 100644 --- a/extra/libpng/PKGBUILD +++ b/extra/libpng/PKGBUILD @@ -1,40 +1,30 @@ -# $Id: PKGBUILD 184406 2013-05-06 19:38:28Z foutrelis $ +# $Id: PKGBUILD 191317 2013-07-23 14:38:48Z foutrelis $ # Maintainer: Jan de Groot # Contributor: dorphell # Contributor: Travis Willard # Contributor: Douglas Soares de Andrade pkgname=libpng -pkgver=1.6.2 -_apngver=1.6.2 -pkgrel=3 +pkgver=1.6.3 +_apngver=1.6.3 +pkgrel=1 pkgdesc="A collection of routines used to create PNG format graphics files" arch=('i686' 'x86_64') url="http://www.libpng.org/pub/png/libpng.html" license=('custom') depends=('zlib' 'sh') options=('!libtool') -source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.xz" - "http://downloads.sourceforge.net/sourceforge/libpng-apng/libpng-$_apngver-apng.patch.gz" - 0001-libpng16-Avoid-dereferencing-NULL-pointer-possibly-r.patch - 0002-libpng16-Calculate-our-own-zlib-windowBits-when-deco.patch - adjust-apng-patch-for-libpng16-git-changes.patch) -md5sums=('9d838f6fca9948a9f360a0cc1b516d5f' - '7d0c9f4b9a7f45dd5d1088e54b623c98' - '59b83234f60a7d1d179d9b0b6a0ebc01' - 'b1f7922b6678305bdb7c23d5bd1763f3' - 'f87704c3fb6d29f09b52178e89a42e2e') +source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.xz{,.asc} + http://downloads.sourceforge.net/sourceforge/libpng-apng/libpng-$_apngver-apng.patch.gz) +md5sums=('9307f8ab04f4be3c1889ffb504f0fe5c' + 'SKIP' + '57007fc121baa2cdc48abcfb26300e78') prepare() { cd $pkgname-$pkgver - # Add fixes from libpng16 branch - patch -Np1 -i ../0001-libpng16-Avoid-dereferencing-NULL-pointer-possibly-r.patch - patch -Np1 -i ../0002-libpng16-Calculate-our-own-zlib-windowBits-when-deco.patch - # Add animated PNG (apng) support # see http://sourceforge.net/projects/libpng-apng/ - patch -d .. -Np0 -i adjust-apng-patch-for-libpng16-git-changes.patch patch -Np1 -i ../libpng-$_apngver-apng.patch } diff --git a/extra/libpng/adjust-apng-patch-for-libpng16-git-changes.patch b/extra/libpng/adjust-apng-patch-for-libpng16-git-changes.patch deleted file mode 100644 index 26ac1c1cf..000000000 --- a/extra/libpng/adjust-apng-patch-for-libpng16-git-changes.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- libpng-1.6.2-apng.patch.orig 2013-05-06 12:09:16.000000000 +0300 -+++ libpng-1.6.2-apng.patch 2013-05-06 12:12:14.000000000 +0300 -@@ -1034,7 +1034,7 @@ diff -Naru libpng-1.6.2.org/pngrutil.c l - - if (png_ptr->zstream.avail_in > 0 || png_ptr->idat_size > 0) - png_chunk_benign_error(png_ptr, "Extra compressed data"); --@@ -4459,4 +4671,80 @@ -+@@ -4459,5 +4671,81 @@ - - png_ptr->flags |= PNG_FLAG_ROW_INIT; - } -@@ -1114,6 +1114,7 @@ diff -Naru libpng-1.6.2.org/pngrutil.c l - +} - +#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ - +#endif /* PNG_READ_APNG_SUPPORTED */ -+ - #endif /* PNG_READ_SUPPORTED */ - diff -Naru libpng-1.6.2.org/pngset.c libpng-1.6.2/pngset.c - --- libpng-1.6.2.org/pngset.c 2013-04-29 17:31:42.000000000 +0900 -- cgit v1.2.3-54-g00ecf