]> granicus.if.org Git - php/commitdiff
MF53:- Fixed bug #45392 (ob_start()/ob_end_clean() and memory_limit) #Ilia..
authorJani Taskinen <jani@php.net>
Fri, 11 Dec 2009 15:42:16 +0000 (15:42 +0000)
committerJani Taskinen <jani@php.net>
Fri, 11 Dec 2009 15:42:16 +0000 (15:42 +0000)
main/main.c

index 3bf288bdd336a604cb74788e17ae0caea3cccd03..c259db0332043ec2d5d23a5e6f65e424fa68d1ca 100644 (file)
@@ -1667,7 +1667,15 @@ void php_request_shutdown(void *dummy)
 
        /* 3. Flush all output buffers */
        zend_try {
-               if (SG(request_info).headers_only) {
+               zend_bool send_buffer = SG(request_info).headers_only ? 0 : 1;
+
+               if (CG(unclean_shutdown) && PG(last_error_type) == E_ERROR &&
+                       PG(memory_limit) < zend_memory_usage(1 TSRMLS_CC)
+               ) {
+                       send_buffer = 0;
+               }
+
+               if (!send_buffer) {
                        php_output_discard_all(TSRMLS_C);
                } else {
                        php_output_end_all(TSRMLS_C);