Skip to content

Commit

Permalink
Fix #78792: zlib.output_compression disabled by Content-Type: image/
Browse files Browse the repository at this point in the history
Disabling output compression for images has served to fix bug php#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 phpGH-6198.
  • Loading branch information
cmb69 committed Sep 29, 2020
1 parent 9f5a771 commit 47a166c
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 7 deletions.
4 changes: 4 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
2 changes: 2 additions & 0 deletions UPGRADING
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 0 additions & 7 deletions main/SAPI.c
Original file line number Diff line number Diff line change
Expand Up @@ -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){
Expand Down

0 comments on commit 47a166c

Please sign in to comment.