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

Reply via email to