--- zlib-1.2.10/uncompr.c 2016-12-31 11:49:17.000000000 -0500 +++ zlib-1.2.8/uncompr.c 2012-08-13 03:02:40.000000000 -0400 @@ -1,5 +1,5 @@ /* uncompr.c -- decompress a memory buffer - * Copyright (C) 1995-2003, 2010, 2014, 2016 Jean-loup Gailly, Mark Adler + * Copyright (C) 1995-2003, 2010 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -9,85 +9,51 @@ #include "zlib.h" /* =========================================================================== - Decompresses the source buffer into the destination buffer. *sourceLen is - the byte length of the source buffer. Upon entry, *destLen is the total size - of the destination buffer, which must be large enough to hold the entire - uncompressed data. (The size of the uncompressed data must have been saved - previously by the compressor and transmitted to the decompressor by some - mechanism outside the scope of this compression library.) Upon exit, - *destLen is the size of the decompressed data and *sourceLen is the number - of source bytes consumed. Upon return, source + *sourceLen points to the - first unused input byte. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, or - Z_DATA_ERROR if the input data was corrupted, including if the input data is - an incomplete zlib stream. + Decompresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be large enough to hold the + entire uncompressed data. (The size of the uncompressed data must have + been saved previously by the compressor and transmitted to the decompressor + by some mechanism outside the scope of this compression library.) + Upon exit, destLen is the actual size of the compressed buffer. + + uncompress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer, or Z_DATA_ERROR if the input data was corrupted. */ -int ZEXPORT uncompress2 (dest, destLen, source, sourceLen) +int ZEXPORT uncompress (dest, destLen, source, sourceLen) Bytef *dest; uLongf *destLen; const Bytef *source; - uLong *sourceLen; + uLong sourceLen; { z_stream stream; int err; - const uInt max = (uInt)-1; - uLong len, left; - Byte buf[1]; /* for detection of incomplete stream when *destLen == 0 */ - - len = *sourceLen; - if (*destLen) { - left = *destLen; - *destLen = 0; - } - else { - left = 1; - dest = buf; - } stream.next_in = (z_const Bytef *)source; - stream.avail_in = 0; + stream.avail_in = (uInt)sourceLen; + /* Check for source > 64K on 16-bit machine: */ + if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; + + stream.next_out = dest; + stream.avail_out = (uInt)*destLen; + if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; + stream.zalloc = (alloc_func)0; stream.zfree = (free_func)0; - stream.opaque = (voidpf)0; err = inflateInit(&stream); if (err != Z_OK) return err; - stream.next_out = dest; - stream.avail_out = 0; - - do { - if (stream.avail_out == 0) { - stream.avail_out = left > (uLong)max ? max : (uInt)left; - left -= stream.avail_out; - } - if (stream.avail_in == 0) { - stream.avail_in = len > (uLong)max ? max : (uInt)len; - len -= stream.avail_in; - } - err = inflate(&stream, Z_NO_FLUSH); - } while (err == Z_OK); - - *sourceLen -= len + stream.avail_in; - if (dest != buf) - *destLen = stream.total_out; - else if (stream.total_out && err == Z_BUF_ERROR) - left = 1; - - inflateEnd(&stream); - return err == Z_STREAM_END ? Z_OK : - err == Z_NEED_DICT ? Z_DATA_ERROR : - err == Z_BUF_ERROR && left + stream.avail_out ? Z_DATA_ERROR : - err; -} + err = inflate(&stream, Z_FINISH); + if (err != Z_STREAM_END) { + inflateEnd(&stream); + if (err == Z_NEED_DICT || (err == Z_BUF_ERROR && stream.avail_in == 0)) + return Z_DATA_ERROR; + return err; + } + *destLen = stream.total_out; -int ZEXPORT uncompress (dest, destLen, source, sourceLen) - Bytef *dest; - uLongf *destLen; - const Bytef *source; - uLong sourceLen; -{ - return uncompress2(dest, destLen, source, &sourceLen); + err = inflateEnd(&stream); + return err; } --- zlib-1.2.10/zconf.h.orig 2017-01-09 12:35:08.548498735 -0500 +++ zlib-1.2.10/zconf.h 2017-01-09 12:35:44.332352653 -0500 @@ -127,7 +127,6 @@ # define inflate_table z_inflate_table # ifndef Z_SOLO # define uncompress z_uncompress -# define uncompress2 z_uncompress2 # endif # define zError z_zError # ifndef Z_SOLO --- zlib-1.2.10/zconf.h.in.orig 2017-01-09 12:35:30.930407364 -0500 +++ zlib-1.2.10/zconf.h.in 2017-01-09 12:35:55.413307416 -0500 @@ -127,7 +127,6 @@ # define inflate_table z_inflate_table # ifndef Z_SOLO # define uncompress z_uncompress -# define uncompress2 z_uncompress2 # endif # define zError z_zError # ifndef Z_SOLO --- zlib-1.2.10/zconf.h.cmakein.orig 2017-01-09 12:35:21.447446077 -0500 +++ zlib-1.2.10/zconf.h.cmakein 2017-01-09 12:36:05.344266875 -0500 @@ -129,7 +129,6 @@ # define inflate_table z_inflate_table # ifndef Z_SOLO # define uncompress z_uncompress -# define uncompress2 z_uncompress2 # endif # define zError z_zError # ifndef Z_SOLO --- zlib-1.2.10/zlib.h.orig 2017-01-09 12:37:23.787946641 -0500 +++ zlib-1.2.10/zlib.h 2017-01-09 12:37:54.700820444 -0500 @@ -1279,13 +1279,6 @@ ZEXTERN int ZEXPORT uncompress OF((Bytef buffer with the uncompressed data up to that point. */ -ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong *sourceLen)); -/* - Same as uncompress, except that sourceLen is a pointer, where the - length of the source is *sourceLen. On return, *sourceLen is the number of - source bytes consumed. -*/ /* gzip file access functions */ --- zlib-1.2.10/zlib.map.orig 2017-01-09 12:38:16.909729780 -0500 +++ zlib-1.2.10/zlib.map 2017-01-09 12:38:25.147696149 -0500 @@ -85,7 +85,6 @@ ZLIB_1.2.7.1 { ZLIB_1.2.9 { inflateCodesUsed; inflateValidate; - uncompress2; gzfread; gzfwrite; deflateGetDictionary;