summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorDavid Coallier <davidc@php.net>2009-02-13 11:48:17 +0000
committerDavid Coallier <davidc@php.net>2009-02-13 11:48:17 +0000
commit2e5f11b8416b66e1502f511f6bf80fa51b88dc98 (patch)
tree263aa5190287e18c848c3458000d9e1cd83310c6 /main
parente28e05b155a2f4ec5d4f6e61ebcff13a4de7616e (diff)
downloadphp-git-2e5f11b8416b66e1502f511f6bf80fa51b88dc98.tar.gz
- 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
Diffstat (limited to 'main')
-rw-r--r--main/output.c5
1 files changed, 5 insertions, 0 deletions
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;
}