From 2e5f11b8416b66e1502f511f6bf80fa51b88dc98 Mon Sep 17 00:00:00 2001 From: David Coallier Date: Fri, 13 Feb 2009 11:48:17 +0000 Subject: [PATCH] - 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 --- main/output.c | 5 +++++ tests/output/bug46897.phpt | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 tests/output/bug46897.phpt diff --git a/main/output.c b/main/output.c index 28a6cea1a4..24e879febe 100644 --- a/main/output.c +++ b/main/output.c @@ -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; } diff --git a/tests/output/bug46897.phpt b/tests/output/bug46897.phpt new file mode 100644 index 0000000000..6cfb102531 --- /dev/null +++ b/tests/output/bug46897.phpt @@ -0,0 +1,27 @@ +--TEST-- +Bug #46897: ob_flush() should fail to flush unerasable buffers +--FILE-- + +--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 -- 2.50.1