summaryrefslogtreecommitdiff
path: root/infback.c
diff options
context:
space:
mode:
authorjiadong.zhu <jiadong.zhu@linaro.org>2016-06-22 21:22:18 -0700
committerCommit bot <commit-bot@chromium.org>2016-06-23 04:23:48 +0000
commit6c1421668fbeb42b16796b6bcd41639cea2edc1c (patch)
tree112740eca4bca052bfbeadecaf83f9c34fc727e5 /infback.c
parentbf2aebeacfc84bf69ff964edbf212ec3aed6430c (diff)
downloadzlib-6c1421668fbeb42b16796b6bcd41639cea2edc1c.tar.gz
Update Zlib to version 1.2.8
merge the latest open source zlib into chromium external projects Version 1.2.8 fixes a very rare bug in decompression. All users are encouraged to upgrade immediately. Version 1.2.8 also has these improvements: - Add new inflateGetDictionary() function - Fix bug where gzopen() immediately followed by gzclose() would write an empty file instead of an empty gzip stream. - Fix bug in gzclose() when gzwrite() runs out of memory Version 1.2.7 has many portability improvements over 1.2.6, and has these enhancements: - Fix bug in gzclose_w() when gzwrite() fails to allocate memory - Add "x" (O_EXCL) and "e" (O_CLOEXEC) modes support to gzopen() - Add gzopen_w() in Windows for wide character path names - Fix type mismatch between get_crc_table() and crc_table Version 1.2.6 has many changes over 1.2.5, including these improvements: - gzread() can now read a file that is being written concurrently - gzgetc() is now a macro for increased speed - Added a 'T' option to gzopen() for transparent writing (no compression) - Added deflatePending() to return the amount of pending output - Allow deflateSetDictionary() and inflateSetDictionary() at any time in raw mode - deflatePrime() can now insert bits in the middle of the stream - ./configure now creates a configure.log file with all of the results - Added a ./configure --solo option to compile zlib with no dependency on any libraries - Fixed a problem with large file support macros - Fixed a bug in contrib/puff - Many portability improvements BUG=610615 R=gavinp@chromium.org Review-Url: https://codereview.chromium.org/2084863002 Cr-Original-Commit-Position: refs/heads/master@{#401538} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: ca1c569cff20aa43a42816791744d847c7d788de
Diffstat (limited to 'infback.c')
-rw-r--r--infback.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/infback.c b/infback.c
index af3a8c9..f3833c2 100644
--- a/infback.c
+++ b/infback.c
@@ -1,5 +1,5 @@
/* infback.c -- inflate using a call-back interface
- * Copyright (C) 1995-2009 Mark Adler
+ * Copyright (C) 1995-2011 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -42,10 +42,19 @@ int stream_size;
return Z_STREAM_ERROR;
strm->msg = Z_NULL; /* in case we return an error */
if (strm->zalloc == (alloc_func)0) {
+#ifdef Z_SOLO
+ return Z_STREAM_ERROR;
+#else
strm->zalloc = zcalloc;
strm->opaque = (voidpf)0;
+#endif
}
- if (strm->zfree == (free_func)0) strm->zfree = zcfree;
+ if (strm->zfree == (free_func)0)
+#ifdef Z_SOLO
+ return Z_STREAM_ERROR;
+#else
+ strm->zfree = zcfree;
+#endif
state = (struct inflate_state FAR *)ZALLOC(strm, 1,
sizeof(struct inflate_state));
if (state == Z_NULL) return Z_MEM_ERROR;
@@ -246,7 +255,7 @@ out_func out;
void FAR *out_desc;
{
struct inflate_state FAR *state;
- unsigned char FAR *next; /* next input */
+ z_const unsigned char FAR *next; /* next input */
unsigned char FAR *put; /* next output */
unsigned have, left; /* available input and output */
unsigned long hold; /* bit buffer */
@@ -394,7 +403,6 @@ void FAR *out_desc;
PULLBYTE();
}
if (here.val < 16) {
- NEEDBITS(here.bits);
DROPBITS(here.bits);
state->lens[state->have++] = here.val;
}