aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/acm
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2010-03-02 01:05:39 +0100
committerNils Adermann <naderman@naderman.de>2010-03-02 01:05:39 +0100
commita45bca7c49623341ae971d4e1014ba9de38de982 (patch)
treea1f033124b14c020e850525a6ea745cb7cb3dbab /phpBB/includes/acm
parent1f3498c0d6a20a08fe17948b32fc435f85a6eff8 (diff)
parent6485d66743d55aeba95aed86fcde4a0e555e3104 (diff)
downloadforums-a45bca7c49623341ae971d4e1014ba9de38de982.tar
forums-a45bca7c49623341ae971d4e1014ba9de38de982.tar.gz
forums-a45bca7c49623341ae971d4e1014ba9de38de982.tar.bz2
forums-a45bca7c49623341ae971d4e1014ba9de38de982.tar.xz
forums-a45bca7c49623341ae971d4e1014ba9de38de982.zip
Merge commit 'release-3.0.5-RC1'
Diffstat (limited to 'phpBB/includes/acm')
-rw-r--r--phpBB/includes/acm/acm_file.php19
1 files changed, 11 insertions, 8 deletions
diff --git a/phpBB/includes/acm/acm_file.php b/phpBB/includes/acm/acm_file.php
index f58f925506..f9ff92e19d 100644
--- a/phpBB/includes/acm/acm_file.php
+++ b/phpBB/includes/acm/acm_file.php
@@ -89,7 +89,7 @@ class acm
if ($fp = @fopen($this->cache_dir . 'data_global.' . $phpEx, 'wb'))
{
@flock($fp, LOCK_EX);
- fwrite($fp, "<?php\n\$this->vars = " . var_export($this->vars, true) . ";\n\n\$this->var_expires = " . var_export($this->var_expires, true) . "\n?>");
+ fwrite($fp, "<?php\nif (!defined('IN_PHPBB')) exit;\n\$this->vars = " . var_export($this->vars, true) . ";\n\n\$this->var_expires = " . var_export($this->var_expires, true) . "\n?>");
@flock($fp, LOCK_UN);
fclose($fp);
@@ -99,17 +99,20 @@ class acm
include($phpbb_root_path . 'includes/functions.' . $phpEx);
}
- phpbb_chmod($this->cache_dir . 'data_global.' . $phpEx, CHMOD_WRITE);
+ phpbb_chmod($this->cache_dir . 'data_global.' . $phpEx, CHMOD_READ | CHMOD_WRITE);
}
else
{
// 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;
@@ -199,7 +202,7 @@ class acm
if ($fp = @fopen($this->cache_dir . "data{$var_name}.$phpEx", 'wb'))
{
@flock($fp, LOCK_EX);
- fwrite($fp, "<?php\n\$expired = (time() > " . (time() + $ttl) . ") ? true : false;\nif (\$expired) { return; }\n\n\$data = " . (sizeof($var) ? "unserialize(" . var_export(serialize($var), true) . ");" : 'array();') . "\n\n?>");
+ fwrite($fp, "<?php\nif (!defined('IN_PHPBB')) exit;\n\$expired = (time() > " . (time() + $ttl) . ") ? true : false;\nif (\$expired) { return; }\n\n\$data = " . (sizeof($var) ? "unserialize(" . var_export(serialize($var), true) . ");" : 'array();') . "\n\n?>");
@flock($fp, LOCK_UN);
fclose($fp);
@@ -209,7 +212,7 @@ class acm
include($phpbb_root_path . 'includes/functions.' . $phpEx);
}
- phpbb_chmod($this->cache_dir . "data{$var_name}.$phpEx", CHMOD_WRITE);
+ phpbb_chmod($this->cache_dir . "data{$var_name}.$phpEx", CHMOD_READ | CHMOD_WRITE);
}
}
else
@@ -421,7 +424,7 @@ class acm
}
$db->sql_freeresult($query_result);
- $file = "<?php\n\n/* " . str_replace('*/', '*\/', $query) . " */\n";
+ $file = "<?php\nif (!defined('IN_PHPBB')) exit;\n\n/* " . str_replace('*/', '*\/', $query) . " */\n";
$file .= "\n\$expired = (time() > " . (time() + $ttl) . ") ? true : false;\nif (\$expired) { return; }\n";
fwrite($fp, $file . "\n\$this->sql_rowset[\$query_id] = " . (sizeof($this->sql_rowset[$query_id]) ? "unserialize(" . var_export(serialize($this->sql_rowset[$query_id]), true) . ");" : 'array();') . "\n\n?>");
@@ -434,7 +437,7 @@ class acm
include($phpbb_root_path . 'includes/functions.' . $phpEx);
}
- phpbb_chmod($filename, CHMOD_WRITE);
+ phpbb_chmod($filename, CHMOD_READ | CHMOD_WRITE);
$query_result = $query_id;
}