Skip to content

Update zlib to the 1.2.11 release #5062

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 25, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions etc/c/zlib.d
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
/* zlib.d: modified from zlib.h by Walter Bright */
/* updated from 1.2.1 to 1.2.3 by Thomas Kuehne */
/* updated from 1.2.3 to 1.2.8 by Dmitry Atamanov */
/* updated from 1.2.8 to 1.2.10 by Iain Buclaw */
/* updated from 1.2.8 to 1.2.11 by Iain Buclaw */

module etc.c.zlib;

import core.stdc.config;

/* zlib.h -- interface of the 'zlib' general purpose compression library
version 1.2.10, January 2nd, 2017
version 1.2.11, January 15th, 2017

Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler

Expand Down Expand Up @@ -40,8 +40,8 @@ import core.stdc.config;
nothrow:
extern (C):

const char[] ZLIB_VERSION = "1.2.10";
const ZLIB_VERNUM = 0x12a0;
const char[] ZLIB_VERSION = "1.2.11";
const ZLIB_VERNUM = 0x12b0;

/*
The 'zlib' compression library provides in-memory compression and
Expand Down Expand Up @@ -725,10 +725,11 @@ int deflateParams(z_streamp strm, int level, int strategy);
used to switch between compression and straight copy of the input data, or
to switch to a different kind of input data requiring a different strategy.
If the compression approach (which is a function of the level) or the
strategy is changed, then the input available so far is compressed with the
old level and strategy using deflate(strm, Z_BLOCK). There are three
approaches for the compression levels 0, 1..3, and 4..9 respectively. The
new level and strategy will take effect at the next call of deflate().
strategy is changed, and if any input has been consumed in a previous
deflate() call, then the input available so far is compressed with the old
level and strategy using deflate(strm, Z_BLOCK). There are three approaches
for the compression levels 0, 1..3, and 4..9 respectively. The new level
and strategy will take effect at the next call of deflate().

If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does
not have enough output space to complete, then the parameter change will not
Expand Down
4 changes: 4 additions & 0 deletions etc/c/zlib/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@

ChangeLog file for zlib

Changes in 1.2.11 (15 Jan 2017)
- Fix deflate stored bug when pulling last block from window
- Permit immediate deflateParams changes before any deflate input

Changes in 1.2.10 (2 Jan 2017)
- Avoid warnings on snprintf() return value
- Fix bug in deflate_stored() for zero-length input
Expand Down
4 changes: 2 additions & 2 deletions etc/c/zlib/README
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
ZLIB DATA COMPRESSION LIBRARY

zlib 1.2.10 is a general purpose data compression library. All the code is
zlib 1.2.11 is a general purpose data compression library. All the code is
thread safe. The data format used by the zlib library is described by RFCs
(Request for Comments) 1950 to 1952 in the files
http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and
Expand Down Expand Up @@ -31,7 +31,7 @@ Mark Nelson <[email protected]> wrote an article about zlib for the Jan. 1997
issue of Dr. Dobb's Journal; a copy of the article is available at
http://marknelson.us/1997/01/01/zlib-engine/ .

The changes made in version 1.2.10 are documented in the file ChangeLog.
The changes made in version 1.2.11 are documented in the file ChangeLog.

Unsupported third party contributions are provided in directory contrib/ .

Expand Down
19 changes: 12 additions & 7 deletions etc/c/zlib/deflate.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
#include "deflate.h"

const char deflate_copyright[] =
" deflate 1.2.10 Copyright 1995-2017 Jean-loup Gailly and Mark Adler ";
" deflate 1.2.11 Copyright 1995-2017 Jean-loup Gailly and Mark Adler ";
/*
If you use the zlib library in a product, an acknowledgment is welcome
in the documentation of your product. If for some reason you cannot
Expand Down Expand Up @@ -586,7 +586,8 @@ int ZEXPORT deflateParams(strm, level, strategy)
}
func = configuration_table[s->level].func;

if ((strategy != s->strategy || func != configuration_table[level].func)) {
if ((strategy != s->strategy || func != configuration_table[level].func) &&
s->high_water) {
/* Flush the last buffer: */
int err = deflate(strm, Z_BLOCK);
if (err == Z_STREAM_ERROR)
Expand Down Expand Up @@ -1671,8 +1672,6 @@ local block_state deflate_stored(s, flush)
len = left + s->strm->avail_in; /* limit len to the input */
if (len > have)
len = have; /* limit len to the output */
if (left > len)
left = len; /* limit window pull to len */

/* If the stored block would be less than min_block in length, or if
* unable to copy all of the available input when flushing, then try
Expand All @@ -1681,13 +1680,13 @@ local block_state deflate_stored(s, flush)
*/
if (len < min_block && ((len == 0 && flush != Z_FINISH) ||
flush == Z_NO_FLUSH ||
len - left != s->strm->avail_in))
len != left + s->strm->avail_in))
break;

/* Make a dummy stored block in pending to get the header bytes,
* including any pending bits. This also updates the debugging counts.
*/
last = flush == Z_FINISH && len - left == s->strm->avail_in ? 1 : 0;
last = flush == Z_FINISH && len == left + s->strm->avail_in ? 1 : 0;
_tr_stored_block(s, (char *)0, 0L, last);

/* Replace the lengths in the dummy stored block with len. */
Expand All @@ -1699,14 +1698,16 @@ local block_state deflate_stored(s, flush)
/* Write the stored block header bytes. */
flush_pending(s->strm);

/* Update debugging counts for the data about to be copied. */
#ifdef ZLIB_DEBUG
/* Update debugging counts for the data about to be copied. */
s->compressed_len += len << 3;
s->bits_sent += len << 3;
#endif

/* Copy uncompressed bytes from the window to next_out. */
if (left) {
if (left > len)
left = len;
zmemcpy(s->strm->next_out, s->window + s->block_start, left);
s->strm->next_out += left;
s->strm->avail_out -= left;
Expand Down Expand Up @@ -1756,6 +1757,8 @@ local block_state deflate_stored(s, flush)
s->block_start = s->strstart;
s->insert += MIN(used, s->w_size - s->insert);
}
if (s->high_water < s->strstart)
s->high_water = s->strstart;

/* If the last block was written to next_out, then done. */
if (last)
Expand Down Expand Up @@ -1783,6 +1786,8 @@ local block_state deflate_stored(s, flush)
read_buf(s->strm, s->window + s->strstart, have);
s->strstart += have;
}
if (s->high_water < s->strstart)
s->high_water = s->strstart;

/* There was not enough avail_out to write a complete worthy or flushed
* stored block to next_out. Write a stored block to pending instead, if we
Expand Down
2 changes: 1 addition & 1 deletion etc/c/zlib/gzlib.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* gzlib.c -- zlib functions common to reading and writing gzip files
* Copyright (C) 2004, 2010, 2011, 2012, 2013, 2016 Mark Adler
* Copyright (C) 2004-2017 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/

Expand Down
2 changes: 1 addition & 1 deletion etc/c/zlib/gzwrite.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* gzwrite.c -- zlib functions for writing gzip files
* Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler
* Copyright (C) 2004-2017 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/

Expand Down
2 changes: 1 addition & 1 deletion etc/c/zlib/inffast.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* inffast.c -- fast decoding
* Copyright (C) 1995-2008, 2010, 2013, 2016 Mark Adler
* Copyright (C) 1995-2017 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/

Expand Down
4 changes: 2 additions & 2 deletions etc/c/zlib/inftrees.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#define MAXBITS 15

const char inflate_copyright[] =
" inflate 1.2.10 Copyright 1995-2017 Mark Adler ";
" inflate 1.2.11 Copyright 1995-2017 Mark Adler ";
/*
If you use the zlib library in a product, an acknowledgment is welcome
in the documentation of your product. If for some reason you cannot
Expand Down Expand Up @@ -62,7 +62,7 @@ unsigned short FAR *work;
35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
static const unsigned short lext[31] = { /* Length codes 257..285 extra */
16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 192, 202};
19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 77, 202};
static const unsigned short dbase[32] = { /* Distance codes 0..29 base */
1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
Expand Down
4 changes: 2 additions & 2 deletions etc/c/zlib/trees.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* trees.c -- output deflated data using Huffman coding
* Copyright (C) 1995-2016 Jean-loup Gailly
* Copyright (C) 1995-2017 Jean-loup Gailly
* detect_data_type() function provided freely by Cosmin Truta, 2006
* For conditions of distribution and use, see copyright notice in zlib.h
*/
Expand Down Expand Up @@ -906,7 +906,7 @@ void ZLIB_INTERNAL _tr_align(s)

/* ===========================================================================
* Determine the best encoding for the current block: dynamic trees, static
* trees or store, and output the encoded block to the zip file.
* trees or store, and write out the encoded block.
*/
void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
deflate_state *s;
Expand Down
4 changes: 2 additions & 2 deletions etc/c/zlib/zlib.3
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.TH ZLIB 3 "2 Jan 2017"
.TH ZLIB 3 "15 Jan 2017"
.SH NAME
zlib \- compression/decompression library
.SH SYNOPSIS
Expand Down Expand Up @@ -105,7 +105,7 @@ before asking for help.
Send questions and/or comments to [email protected],
or (for the Windows DLL version) to Gilles Vollant ([email protected]).
.SH AUTHORS AND LICENSE
Version 1.2.10
Version 1.2.11
.LP
Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
.LP
Expand Down
17 changes: 9 additions & 8 deletions etc/c/zlib/zlib.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* zlib.h -- interface of the 'zlib' general purpose compression library
version 1.2.10, January 2nd, 2017
version 1.2.11, January 15th, 2017

Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler

Expand Down Expand Up @@ -37,11 +37,11 @@
extern "C" {
#endif

#define ZLIB_VERSION "1.2.10"
#define ZLIB_VERNUM 0x12a0
#define ZLIB_VERSION "1.2.11"
#define ZLIB_VERNUM 0x12b0
#define ZLIB_VER_MAJOR 1
#define ZLIB_VER_MINOR 2
#define ZLIB_VER_REVISION 10
#define ZLIB_VER_REVISION 11
#define ZLIB_VER_SUBREVISION 0

/*
Expand Down Expand Up @@ -712,10 +712,11 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
used to switch between compression and straight copy of the input data, or
to switch to a different kind of input data requiring a different strategy.
If the compression approach (which is a function of the level) or the
strategy is changed, then the input available so far is compressed with the
old level and strategy using deflate(strm, Z_BLOCK). There are three
approaches for the compression levels 0, 1..3, and 4..9 respectively. The
new level and strategy will take effect at the next call of deflate().
strategy is changed, and if any input has been consumed in a previous
deflate() call, then the input available so far is compressed with the old
level and strategy using deflate(strm, Z_BLOCK). There are three approaches
for the compression levels 0, 1..3, and 4..9 respectively. The new level
and strategy will take effect at the next call of deflate().

If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does
not have enough output space to complete, then the parameter change will not
Expand Down
2 changes: 1 addition & 1 deletion etc/c/zlib/zutil.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* zutil.c -- target dependent utility functions for the compression library
* Copyright (C) 1995-2005, 2010, 2011, 2012, 2016 Jean-loup Gailly
* Copyright (C) 1995-2017 Jean-loup Gailly
* For conditions of distribution and use, see copyright notice in zlib.h
*/

Expand Down