Zeev Suraski wrote: > 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? >
That's what I thought, too. 1 enable buffer with default chunk size. IIRC, anything less than certain size is initialized with default or minimum chunk size, isn't it? At least, it was something like that. I don't think I change/broke it, since I didn't see any problem in it. Most of my changes are in 4.2.0, not in 4.3.0-dev. Marcus, how about you? I remember you have been changing chunk size, etc, recently. -- Yasuo Ohgaki > 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