FYI: I remember seeing several (!) bug reports about something like
this. I noticed you closed at least one, but there might be more..
--Jani
Arnaud Le Blanc wrote:
lbarnaud Mon Aug 18 03:54:50 2008 UTC
Modified files:
/php-src/main output.c
Log:
update buffer size after having effectively realloc()ed it when appending
data to an output buffer
# may caused some problems if erealloc() failed here because of memory
# limit ("memory limit exhausted" error message then written to
# the buffer, etc)
http://cvs.php.net/viewvc.cgi/php-src/main/output.c?r1=1.210&r2=1.211&diff_format=u
Index: php-src/main/output.c
diff -u php-src/main/output.c:1.210 php-src/main/output.c:1.211
--- php-src/main/output.c:1.210 Tue Mar 4 23:39:15 2008
+++ php-src/main/output.c Mon Aug 18 03:54:49 2008
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: output.c,v 1.210 2008/03/04 23:39:15 felipe Exp $ */
+/* $Id: output.c,v 1.211 2008/08/18 03:54:49 lbarnaud Exp $ */
#ifndef PHP_OUTPUT_DEBUG
# define PHP_OUTPUT_DEBUG 0
@@ -913,7 +913,8 @@
size_t grow_buf = PHP_OUTPUT_HANDLER_INITBUF_SIZE(buf->used -
(handler->buffer.size - handler->buffer.used));
size_t grow_max = MAX(grow_int, grow_buf);
- handler->buffer.data = erealloc(handler->buffer.data,
handler->buffer.size += grow_max);
+ handler->buffer.data = erealloc(handler->buffer.data,
handler->buffer.size + grow_max);
+ handler->buffer.size += grow_max;
}
memcpy(handler->buffer.data + handler->buffer.used, buf->data,
buf->used);
handler->buffer.used += buf->used;
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php