Yasuo - this used to work in PHP 4.2 - setting zlib.output_compression = 1 should enable the default size of 4096 bytes... Did you do something that could have broken it?
Zeev At 13:18 30/09/2002, Wez Furlong wrote: >wez Mon Sep 30 06:18:06 2002 EDT > > Modified files: > /php4/ext/zlib zlib.c > /php4/main output.c > Log: > Fix infinite recursion bug when using zlib output compression. > Cause: the chunk size is taken from the zlib.output_compression setting, > which is 0 or 1. This causes the block_size for output buffer to be set > to 0 (1 / 2) and thus causes infinite recursion in php_ob_allocate(). > Solution: use a value of 0 for the chunk size which will use the default > sizes. Also add a sanity check which will default the block_size to 1 > if it ends up as 0. > > >Index: php4/ext/zlib/zlib.c >diff -u php4/ext/zlib/zlib.c:1.149 php4/ext/zlib/zlib.c:1.150 >--- php4/ext/zlib/zlib.c:1.149 Tue Sep 3 18:54:02 2002 >+++ php4/ext/zlib/zlib.c Mon Sep 30 06:18:06 2002 >@@ -18,7 +18,7 @@ > | Jade Nicoletti <[EMAIL PROTECTED]> | > +----------------------------------------------------------------------+ > */ >-/* $Id: zlib.c,v 1.149 2002/09/03 22:54:02 sniper Exp $ */ >+/* $Id: zlib.c,v 1.150 2002/09/30 10:18:06 wez Exp $ */ > #define IS_EXT_MODULE > > #ifdef HAVE_CONFIG_H >@@ -230,6 +230,8 @@ > ZLIBG(ob_gzhandler_status) = 0; > ZLIBG(ob_gzip_coding) = 0; > if (chunk_size) { >+ if (chunk_size == 1) >+ chunk_size = 0; /* use the default size */ > php_enable_output_compression(chunk_size TSRMLS_CC); > } > return SUCCESS; >Index: php4/main/output.c >diff -u php4/main/output.c:1.121 php4/main/output.c:1.122 >--- php4/main/output.c:1.121 Mon Sep 23 10:18:42 2002 >+++ php4/main/output.c Mon Sep 30 06:18:06 2002 >@@ -18,7 +18,7 @@ > +----------------------------------------------------------------------+ > */ > >-/* $Id: output.c,v 1.121 2002/09/23 14:18:42 zeev Exp $ */ >+/* $Id: output.c,v 1.122 2002/09/30 10:18:06 wez Exp $ */ > > #include "php.h" > #include "ext/standard/head.h" >@@ -132,6 +132,8 @@ > if (chunk_size) { > initial_size = (chunk_size*3/2); > block_size = chunk_size/2; >+ if (block_size == 0) >+ block_size = 1; > } else { > initial_size = 40*1024; > block_size = 10*1024; > > > >-- >PHP CVS Mailing List (http://www.php.net/) >To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php