summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoazin Khatti <moazinkhatri@gmail.com>2020-03-02 18:21:27 +0500
committerMoazin Khatti <moazinkhatri@gmail.com>2020-03-02 18:21:27 +0500
commit6a431038c9113d906d66836cd7d216a5c630be7c (patch)
tree2f234ab2c41cc8b52bd577da58ac40ffd6d90590
parent11975fe9f6ed92b7630698e599b936a0186d965d (diff)
downloadfreetype2-6a431038c9113d906d66836cd7d216a5c630be7c.tar.gz
[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.
-rw-r--r--ChangeLog19
-rw-r--r--src/gzip/ftgzip.c10
2 files changed, 29 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 6bbb9576a..471b5c824 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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).
diff --git a/src/gzip/ftgzip.c b/src/gzip/ftgzip.c
index d192b10e2..6b1df3a4a 100644
--- a/src/gzip/ftgzip.c
+++ b/src/gzip/ftgzip.c
@@ -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 );