mirror of
https://github.com/php/php-src.git
synced 2024-11-23 18:04:36 +08:00
- Fixed bug #46897: ob_flush() should fail to flush unerasable buffers
- Added test for bug46897 - A memleak has been identified while fixing this bug but the changes made by this commit do not affect ob_get_clean where the memleak (which is fixed in HEAD with the new handler) resides. - [DOC] New noticed is outputted in ob_flush when the buffer is unerasable
This commit is contained in:
parent
e28e05b155
commit
2e5f11b841
@ -774,6 +774,11 @@ PHP_FUNCTION(ob_flush)
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
if (!OG(active_ob_buffer).status && !OG(active_ob_buffer).erase) {
|
||||
php_error_docref("ref.outcontrol" TSRMLS_CC, E_NOTICE, "failed to flush buffer %s.", OG(active_ob_buffer).handler_name);
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
php_end_ob_buffer(1, 1 TSRMLS_CC);
|
||||
RETURN_TRUE;
|
||||
}
|
||||
|
27
tests/output/bug46897.phpt
Normal file
27
tests/output/bug46897.phpt
Normal file
@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
Bug #46897: ob_flush() should fail to flush unerasable buffers
|
||||
--FILE--
|
||||
<?php
|
||||
function callback($string) {
|
||||
static $callback_invocations;
|
||||
$callback_invocations++;
|
||||
return "[callback:$callback_invocations]$string\n";
|
||||
}
|
||||
|
||||
ob_start('callback', 0, false);
|
||||
|
||||
echo "Attempt to flush unerasable buffer - should fail...";
|
||||
var_dump(ob_flush());
|
||||
// Check content of buffer after flush - if flush failed it should still contain the string above.
|
||||
var_dump(ob_get_contents());
|
||||
echo 'Done';
|
||||
?>
|
||||
--EXPECTF--
|
||||
[callback:1]Attempt to flush unerasable buffer - should fail...
|
||||
Notice: ob_flush(): failed to flush buffer callback. in %s on line %d
|
||||
bool(false)
|
||||
string(%d) "Attempt to flush unerasable buffer - should fail...
|
||||
Notice: ob_flush(): failed to flush buffer callback. in %s on line %d
|
||||
bool(false)
|
||||
"
|
||||
Done
|
Loading…
Reference in New Issue
Block a user