From: Christoph M. Becker Date: Wed, 23 Sep 2020 21:52:27 +0000 (+0200) Subject: Fix #78792: zlib.output_compression disabled by Content-Type: image/ X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=47a166c8378e8e670994f272c7f948b67014c619;p=php Fix #78792: zlib.output_compression disabled by Content-Type: image/ Disabling output compression for images has served to fix bug #16109, where zlib compressed images apparently have caused issues with Navigator 4. This shouldn't be an issue with somewhat contemporary browsers. Other than that, this is an arbitrary restriction – why don't we disable the compression for some other media types as well (e.g. video/* and audio/*)? All in all, we should leave that decision to userland. Closes GH-6198. --- diff --git a/NEWS b/NEWS index d9b7b57cfd..f91bd85e71 100644 --- a/NEWS +++ b/NEWS @@ -18,6 +18,10 @@ PHP NEWS - SPL: . SplFixedArray is now IteratorAggregate rather than Iterator. (alexdowad) +- Zlib: + . Fixed bug #78792 (zlib.output_compression disabled by Content-Type: image/). + (cmb) + 17 Sep 2020, PHP 8.0.0beta4 - Core: diff --git a/UPGRADING b/UPGRADING index 9fdfe5b6bb..c2e425ef11 100644 --- a/UPGRADING +++ b/UPGRADING @@ -662,6 +662,8 @@ PHP 8.0 UPGRADE NOTES . deflate_init() will now return a DeflateContext object rather than a resource. Return value checks using is_resource() should be replaced with checks for `false`. + . zlib.output_compression is no longer automatically disabled for + Content-Type: image/*. ======================================== 2. New Features diff --git a/main/SAPI.c b/main/SAPI.c index 01ec31f722..0a7f219e84 100644 --- a/main/SAPI.c +++ b/main/SAPI.c @@ -762,13 +762,6 @@ SAPI_API int sapi_header_op(sapi_header_op_enum op, void *arg) len--; } - /* Disable possible output compression for images */ - if (!strncmp(ptr, "image/", sizeof("image/")-1)) { - zend_string *key = zend_string_init("zlib.output_compression", sizeof("zlib.output_compression")-1, 0); - zend_alter_ini_entry_chars(key, "0", sizeof("0") - 1, PHP_INI_USER, PHP_INI_STAGE_RUNTIME); - zend_string_release_ex(key, 0); - } - mimetype = estrdup(ptr); newlen = sapi_apply_default_charset(&mimetype, len); if (!SG(sapi_headers).mimetype){