diff options
| author | Meik Sievertsen <acydburn@phpbb.com> | 2009-03-01 13:37:53 +0000 |
|---|---|---|
| committer | Meik Sievertsen <acydburn@phpbb.com> | 2009-03-01 13:37:53 +0000 |
| commit | 36ccf7c6d7ee7d0ee4190c0beecb864c1524f7a8 (patch) | |
| tree | 222f7e63ef2aa300cc0942675a2c57d14c7e831f | |
| parent | d597eacce54708f0a5e6788f9cb90c84678e94fb (diff) | |
| download | forums-36ccf7c6d7ee7d0ee4190c0beecb864c1524f7a8.tar forums-36ccf7c6d7ee7d0ee4190c0beecb864c1524f7a8.tar.gz forums-36ccf7c6d7ee7d0ee4190c0beecb864c1524f7a8.tar.bz2 forums-36ccf7c6d7ee7d0ee4190c0beecb864c1524f7a8.tar.xz forums-36ccf7c6d7ee7d0ee4190c0beecb864c1524f7a8.zip | |
Fix infinite loop in message handler if cache directory is not writable. (Bug #38675)
- newer PHP versions handle this quite fine, a Fatal Error is returned in this case
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@9353 89ea8834-ac86-4346-8a33-228a782c2dd0
| -rw-r--r-- | phpBB/docs/CHANGELOG.html | 1 | ||||
| -rw-r--r-- | phpBB/includes/acm/acm_file.php | 7 |
2 files changed, 6 insertions, 2 deletions
diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html index 8509b875ef..ea4846f8ea 100644 --- a/phpBB/docs/CHANGELOG.html +++ b/phpBB/docs/CHANGELOG.html @@ -110,6 +110,7 @@ <li>[Fix] Deleted users still appear logged in (Bug #41985 - Patch by TerraFrost)</li> <li>[Fix] Removed redundant code and unnecessary queries in forum management. (Bug #42265 - Patch by nickvergessen)</li> <li>[Fix] Correct mbstring regular expression for the allowable username characters, only affects <code>USERNAME_LETTER_NUM_SPACERS</code>. (Bug #42325)</li> + <li>[Fix] Fix infinite loop in message handler if cache directory is not writable. (Bug #38675)</li> <li>[Change] Allow download of conflicting file for later reference in automatic updater</li> <li>[Change] Default difference view is now 'inline' instead of 'side by side'</li> <li>[Change] Added new option for merging differences to conflicting files in automatic updater</li> diff --git a/phpBB/includes/acm/acm_file.php b/phpBB/includes/acm/acm_file.php index d0cb9bd4a7..22c7ba8bda 100644 --- a/phpBB/includes/acm/acm_file.php +++ b/phpBB/includes/acm/acm_file.php @@ -106,10 +106,13 @@ class acm // Now, this occurred how often? ... phew, just tell the user then... if (!@is_writable($this->cache_dir)) { - trigger_error($this->cache_dir . ' is NOT writable.', E_USER_ERROR); + // We need to use die() here, because else we may encounter an infinite loop (the message handler calls $cache->unload()) + die($this->cache_dir . ' is NOT writable.'); + exit; } - trigger_error('Not able to open ' . $this->cache_dir . 'data_global.' . $phpEx, E_USER_ERROR); + die('Not able to open ' . $this->cache_dir . 'data_global.' . $phpEx); + exit; } $this->is_modified = false; |
