#24951 [NEW]: ob_flash() and ob_clean() destroy output handler

From: Date: Tue, 05 Aug 2003 13:31:35 +0000
Subject: #24951 [NEW]: ob_flash() and ob_clean() destroy output handler
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-45377@lists.php.net to get a copy of this message
From: d dot stogov at turck dot spb dot ru Operating system: Linux PHP version: 4.3.2 PHP Bug Type: Output Control Bug description: ob_flash() and ob_clean() destroy output handler Description: ------------ The C function "php_end_ob_buffer" from "main/output.c" destroys output_handler on first call so the second call to output_handler is not possible. "php_end_ob_buffer" is called by "ob_flush()" and "ob_clean()" those must not destroy output handler. Look into line 250: zval_ptr_dtor(&OG(active_ob_buffer).output_handler); The same error is in PHP-4.3.3RC2 too. Reproduce code: --------------- <?php function test($s,$mode) { return (($mode & PHP_OUTPUT_HANDLER_START)?"[":""). $s. (($mode & PHP_OUTPUT_HANDLER_END)?"]\n":""); } function t1() { ob_start("test"); echo "Hello from t1 1 "; echo "Hello from t1 2 "; ob_end_flush(); } function t2() { ob_start("test"); echo "Hello from t2 1 "; ob_flush(); echo "Hello from t2 2 "; ob_end_flush(); } function t3() { ob_start("test"); echo "Hello from t3 1 "; ob_clean(); echo "Hello from t3 2 "; ob_end_flush(); } t1(); echo "\n"; t2(); echo "\n"; t3(); echo "\n"; ?> Expected result: ---------------- [Hello from t1 1 Hello from t1 2 ] [Hello from t2 1 Hello from t2 2] [Hello from t3 2] Actual result: -------------- [Hello from t1 1 Hello from t1 2 ] [Hello from t2 1 Hello from t2 2 Hello from t3 2 -- Edit bug report at http://bugs.php.net/?id=24951&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=24951&r=trysnapshot4 Try a CVS snapshot (php5): http://bugs.php.net/fix.php?id=24951&r=trysnapshot5 Fixed in CVS: http://bugs.php.net/fix.php?id=24951&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=24951&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=24951&r=needtrace Try newer version: http://bugs.php.net/fix.php?id=24951&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=24951&r=support Expected behavior: http://bugs.php.net/fix.php?id=24951&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=24951&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=24951&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=24951&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=24951&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=24951&r=dst IIS Stability: http://bugs.php.net/fix.php?id=24951&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=24951&r=gnused

« previous php.bugs (#45377) next »