From df00b64cb93dafbe5ae47bf733e826b54b32ae37 Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Tue, 24 Apr 2012 19:50:00 +0200 Subject: [PATCH] fixed bug #61820 using ob_gzhandler will complain about headers already sent when no compression the Vary header should only be sent on the PHP_OUTPUT_HANDLER_START event --- ext/zlib/tests/bug61820.phpt | 23 +++++++++++++++++++++++ ext/zlib/zlib.c | 4 +++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 ext/zlib/tests/bug61820.phpt diff --git a/ext/zlib/tests/bug61820.phpt b/ext/zlib/tests/bug61820.phpt new file mode 100644 index 0000000000..6f33b54553 --- /dev/null +++ b/ext/zlib/tests/bug61820.phpt @@ -0,0 +1,23 @@ +--TEST-- +bug #61820 using ob_gzhandler will complain about headers already sent when no compression +--SKIPIF-- + +--FILE-- + +DONE +--EXPECT-- +Hi there. +This is confusing... +DONE diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c index d472573b79..545979dc9c 100644 --- a/ext/zlib/zlib.c +++ b/ext/zlib/zlib.c @@ -187,7 +187,9 @@ static int php_zlib_output_handler(void **handler_context, php_output_context *o -Vary: $ HTTP_ACCEPT_ENCODING=gzip ./sapi/cgi/php <<<'op != (PHP_OUTPUT_HANDLER_START|PHP_OUTPUT_HANDLER_CLEAN|PHP_OUTPUT_HANDLER_FINAL)) { + if ((output_context->op & PHP_OUTPUT_HANDLER_START) + && (output_context->op != (PHP_OUTPUT_HANDLER_START|PHP_OUTPUT_HANDLER_CLEAN|PHP_OUTPUT_HANDLER_FINAL)) + ) { sapi_add_header_ex(ZEND_STRL("Vary: Accept-Encoding"), 1, 1 TSRMLS_CC); } return FAILURE; -- 2.50.0