[gzip] Support `gzip' encoded header conditionally.

In order to support `gzip' encoded header the call to
`inflateInit2' was modified in commit 6a92b1fadd.
However, this code breaks with the outdated internal version
of zlib.  This is a temporary fix to conditionally support
`gzip' encoded header whenever a system installation of zlib
is being used.

Problem report in

  https://lists.nongnu.org/archive/html/freetype-devel/2020-02/msg00023.html

* src/gzip/ftgzip.c (FT_Gzip_Uncompress): Change the the call to
`inflateInit2' depending on whether the system installation is
being used or the internal copy.
This commit is contained in:
Moazin Khatti 2020-03-02 18:21:27 +05:00
parent 11975fe9f6
commit 6a431038c9
2 changed files with 29 additions and 0 deletions

View File

@ -1,3 +1,22 @@
2020-03-02 Moazin Khatti <moazinkhatri@gmail.com>
[gzip] Support `gzip' encoded header conditionally.
In order to support `gzip' encoded header the call to
`inflateInit2' was modified in commit 6a92b1fadde26477a9179.
However, this code breaks with the outdated internal version
of zlib. This is a temporary fix to conditionally support
`gzip' encoded header whenever a system installation of zlib
is being used.
Problem report in
https://lists.nongnu.org/archive/html/freetype-devel/2020-02/msg00023.html
* src/gzip/ftgzip.c (FT_Gzip_Uncompress): Change the the call to
`inflateInit2' depending on whether the system installation is
being used or the internal copy.
2020-02-29 Ben Wagner <bungeman@google.com>
[truetype] Fix state of `FT_Face' for buggy `gvar' tables (#57923).

View File

@ -746,7 +746,17 @@
stream.zfree = (free_func) ft_gzip_free;
stream.opaque = memory;
/* This is a temporary fix and will be removed once the internal
* copy of zlib is updated to the newest version. The `|32' flag
* is only supported in the new versions of zlib to enable gzip
* encoded header.
*/
#ifdef FT_CONFIG_OPTION_SYSTEM_ZLIB
err = inflateInit2( &stream, MAX_WBITS|32 );
#else
err = inflateInit2( &stream, MAX_WBITS );
#endif
if ( err != Z_OK )
return FT_THROW( Invalid_Argument );