From: Roan Kattouw Date: Sat, 8 Jan 2011 15:41:55 +0000 (+0000) Subject: Attempt at fixing bug 26370, which seems to be an infinite loop caused by ob_get_leve... X-Git-Tag: 1.31.0-rc.0~32696 X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/banques/ajouter.php?a=commitdiff_plain;h=8edf949acd15eec58cf442e09b64f52aca0646f2;p=lhc%2Fweb%2Fwiklou.git Attempt at fixing bug 26370, which seems to be an infinite loop caused by ob_get_level() never going all the way down to 0 no matter how many output buffers we destroy. Use a for loop instead --- diff --git a/includes/resourceloader/ResourceLoader.php b/includes/resourceloader/ResourceLoader.php index 2ee7a6e0de..4db401b10f 100644 --- a/includes/resourceloader/ResourceLoader.php +++ b/includes/resourceloader/ResourceLoader.php @@ -377,7 +377,11 @@ class ResourceLoader { // See also http://bugs.php.net/bug.php?id=51579 // To work around this, we tear down all output buffering before // sending the 304. - while ( ob_get_level() > 0 ) { + // On some setups, ob_get_level() doesn't seem to go down to zero + // no matter how often we call ob_get_clean(), so instead of doing + // the more intuitive while ( ob_get_level() > 0 ) ob_get_clean(); + // we have to be safe here and avoid an infinite loop. + for ( $i = 0; $i < ob_get_level(); $i++ ) { ob_end_clean(); }