MDL-24368 prevent infinite loops when caching can not be disabled
authorPetr Skoda <skodak@moodle.org>
Mon, 27 Sep 2010 15:41:46 +0000 (15:41 +0000)
committerPetr Skoda <skodak@moodle.org>
Mon, 27 Sep 2010 15:41:46 +0000 (15:41 +0000)
admin/cron.php
admin/index.php

index eed68d3..5ea34e6 100644 (file)
@@ -77,7 +77,10 @@ if (check_browser_version('MSIE')) {
 // no more headers and buffers
 @ob_implicit_flush(true);
 while(ob_get_level()) {
 // no more headers and buffers
 @ob_implicit_flush(true);
 while(ob_get_level()) {
-    ob_end_clean();
+    if (!ob_end_clean()) {
+        // prevent infinite loop
+        break;
+    }
 }
 
 // execute the cron
 }
 
 // execute the cron
index b586bad..01e4057 100644 (file)
@@ -41,7 +41,10 @@ if (version_compare(phpversion(), '5.2.0') < 0) {
 // try to flush everything all the time
 @ob_implicit_flush(true);
 while(ob_get_level()) {
 // try to flush everything all the time
 @ob_implicit_flush(true);
 while(ob_get_level()) {
-    ob_end_clean(); // ob_end_flush prevents sending of headers
+    if (!ob_end_clean()) {
+        // prevent infinite loop
+        break;
+    }
 }
 
 require('../config.php');
 }
 
 require('../config.php');