Bug #12227 Updated: Output puffering causes Apache to SIGSEGV

From: Date: Wed, 18 Jul 2001 10:13:58 +0000
Subject: Bug #12227 Updated: Output puffering causes Apache to SIGSEGV
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-60206@lists.php.net to get a copy of this message
ID: 12227 User updated by: brueckner@respublica.de Reported By: brueckner@respublica.de Status: Open Bug Type: Output Control Operating System: Linux 2.2.16-SMP PHP Version: 4.0.6 New Comment: One more comment which I forgot before: This does NOT happen when I do not use auto_prepend_file and call my function inside the main script instead. Previous Comments: ------------------------------------------------------------------------ [2001-07-18 06:07:05] brueckner@respublica.de When using ob_start() with a script included via auto_prepend_file and then doing something like this: ob_start("my_flush"); function my_flush($buffer) { $buffer = preg_replace("/(<!--REPLACE\\s.*?-->)/e", "parse(\"\\1\")", $buffer); return $buffer; } PHP 4.0.6 SIGSEGV's with this message in the error_log: [Wed Jul 18 11:55:08 2001] Script: '/home/htdocs/test.php' --------------------------------------- output.c(235) : Block 0x0824C940 status: Beginning: Overrun (magic=0x08294990, expected=0x7312F8DC) End: Unknown --------------------------------------- ./zend_execute.c(334) : Freeing 0x082A8CB4 (28131 bytes), script=/home/htdocs/test.php zend_variables.c(117) : Actual location (location was relayed) [Wed Jul 18 11:55:08 2001] [notice] child pid 30192 exit signal Segmentation fault (11) If I replace the line $buffer = preg_replace("/(<!--REPLACE\\s.*?-->)/e", "parse(\"\\1\")", $buffer); with $newbuffer = preg_replace("/(<!--REPLACE\\s.*?-->)/e", "parse(\"\\1\")", $buffer); it works fine. Any ideas for a fix? Harry ------------------------------------------------------------------------ Edit this bug report at http://bugs.php.net/?id=12227&edit=1

« previous php.dev (#60206) next »