diff options
Diffstat (limited to 'lib/zlib/deflate.c')
-rw-r--r-- | lib/zlib/deflate.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/zlib/deflate.c b/lib/zlib/deflate.c index 7e1ed4f9b20..4549f4dc12a 100644 --- a/lib/zlib/deflate.c +++ b/lib/zlib/deflate.c @@ -196,30 +196,37 @@ struct static_tree_desc_s {int dummy;}; /* for buggy compilers */ zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head)); /* ========================================================================= */ -int ZEXPORT deflateInit_(strm, level, stream_size) +int ZEXPORT deflateInit_(strm, level, version, stream_size) z_streamp strm; int level; + const char *version; int stream_size; { return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, - Z_DEFAULT_STRATEGY, stream_size); + Z_DEFAULT_STRATEGY, version, stream_size); /* To do: ignore strm->next_in if we use it as window */ } /* ========================================================================= */ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, - stream_size) + version, stream_size) z_streamp strm; int level; int method; int windowBits; int memLevel; int strategy; + const char *version; int stream_size; { deflate_state *s; int wrap = 1; + static const char my_version[] = ZLIB_VERSION; + if (version == Z_NULL || version[0] != my_version[0] || + stream_size != sizeof(z_stream)) { + return Z_VERSION_ERROR; + } if (strm == Z_NULL) return Z_STREAM_ERROR; strm->msg = Z_NULL; |