Commit:    df00b64cb93dafbe5ae47bf733e826b54b32ae37
Author:    Michael Wallner <m...@php.net>         Tue, 24 Apr 2012 19:50:00 
+0200
Parents:   f21376d6688ef51d6d6764016f8a4c2e2fd57549
Branches:  PHP-5.4 master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=df00b64cb93dafbe5ae47bf733e826b54b32ae37

Log:
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

Bugs:
https://bugs.php.net/61820

Changed paths:
  A  ext/zlib/tests/bug61820.phpt
  M  ext/zlib/zlib.c


Diff:
diff --git a/ext/zlib/tests/bug61820.phpt b/ext/zlib/tests/bug61820.phpt
new file mode 100644
index 0000000..6f33b54
--- /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--
+<?php
+extension_loaded("zlib") or die("skip");
+?>
+--FILE--
+<?php
+ob_start('ob_gzhandler');
+
+echo "Hi there.\n";
+ob_flush();
+flush();
+
+echo "This is confusing...\n";
+ob_flush();
+flush();
+?>
+DONE
+--EXPECT--
+Hi there.
+This is confusing...
+DONE
diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c
index d472573..545979d 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 
<<<'<?php ob_start("ob_gzhandler"); echo "foo\n"; ob_end_clean();'
                        -Vary: $ HTTP_ACCEPT_ENCODING= ./sapi/cgi/php <<<'<?php 
ob_start("ob_gzhandler"); echo "foo\n"; ob_end_clean();'
                */
-               if (output_context->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;


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to