Skip to content

Commit

Permalink
Re-fix bug #55544
Browse files Browse the repository at this point in the history
  • Loading branch information
laruence committed Jul 24, 2012
1 parent 2abc4c2 commit 4c1e2bb
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 3 deletions.
1 change: 1 addition & 0 deletions ext/zlib/php_zlib.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ ZEND_BEGIN_MODULE_GLOBALS(zlib)
long output_compression_default;
char *output_handler;
php_zlib_context *ob_gzhandler;
zend_bool handler_registered;
ZEND_END_MODULE_GLOBALS(zlib);

php_stream *php_stream_gzopen(php_stream_wrapper *wrapper, char *path, char *mode, int options, char **opened_path, php_stream_context *context STREAMS_DC TSRMLS_DC);
Expand Down
Binary file added ext/zlib/tests/bug55544.phpt
Binary file not shown.
11 changes: 8 additions & 3 deletions ext/zlib/zlib.c
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,8 @@ static php_output_handler *php_zlib_output_handler_init(const char *handler_name
ZLIBG(output_compression) = chunk_size ? chunk_size : PHP_OUTPUT_HANDLER_DEFAULT_SIZE;
}

ZLIBG(handler_registered) = 1;

if ((h = php_output_handler_create_internal(handler_name, handler_name_len, php_zlib_output_handler, chunk_size, flags TSRMLS_CC))) {
php_output_handler_set_context(h, php_zlib_output_handler_context_init(TSRMLS_C), php_zlib_output_handler_context_dtor TSRMLS_CC);
}
Expand Down Expand Up @@ -964,9 +966,10 @@ static PHP_MSHUTDOWN_FUNCTION(zlib)
static PHP_RINIT_FUNCTION(zlib)
{
ZLIBG(compression_coding) = 0;
ZLIBG(output_compression) = ZLIBG(output_compression_default);

php_zlib_output_compression_start(TSRMLS_C);
if (!ZLIBG(handler_registered)) {
ZLIBG(output_compression) = ZLIBG(output_compression_default);
php_zlib_output_compression_start(TSRMLS_C);
}

return SUCCESS;
}
Expand All @@ -976,6 +979,7 @@ static PHP_RINIT_FUNCTION(zlib)
static PHP_RSHUTDOWN_FUNCTION(zlib)
{
php_zlib_cleanup_ob_gzhandler_mess(TSRMLS_C);
ZLIBG(handler_registered) = 0;

return SUCCESS;
}
Expand All @@ -1000,6 +1004,7 @@ static PHP_MINFO_FUNCTION(zlib)
static ZEND_MODULE_GLOBALS_CTOR_D(zlib)
{
zlib_globals->ob_gzhandler = NULL;
zlib_globals->handler_registered = 0;
}
/* }}} */

Expand Down

0 comments on commit 4c1e2bb

Please sign in to comment.