aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions.php
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2007-11-17 20:04:49 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2007-11-17 20:04:49 +0000
commite2e56acca918ceb3cfd1a64a8ec91a788ae4a5f9 (patch)
treed95019f35104d9518d7159c2aae077ea8aa0bae0 /phpBB/includes/functions.php
parent056d24a0bd8b3d4998fcbca51cffc525778b2d38 (diff)
downloadforums-e2e56acca918ceb3cfd1a64a8ec91a788ae4a5f9.tar
forums-e2e56acca918ceb3cfd1a64a8ec91a788ae4a5f9.tar.gz
forums-e2e56acca918ceb3cfd1a64a8ec91a788ae4a5f9.tar.bz2
forums-e2e56acca918ceb3cfd1a64a8ec91a788ae4a5f9.tar.xz
forums-e2e56acca918ceb3cfd1a64a8ec91a788ae4a5f9.zip
some further fixes
- re-introduce grabbing random number from /dev/urandom git-svn-id: file:///svn/phpbb/trunk@8241 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/functions.php')
-rw-r--r--phpBB/includes/functions.php28
1 files changed, 22 insertions, 6 deletions
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index 5ef95761e0..668fc9d0e0 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -270,13 +270,24 @@ function phpbb_hash($password)
$random = '';
$count = 6;
- for ($i = 0; $i < $count; $i += 16)
+ if (($fh = @fopen('/dev/urandom', 'rb')))
{
- $random_state = md5(unique_id() . $random_state);
- $random .= pack('H*', md5($random_state));
+ $random = fread($fh, $count);
+ fclose($fh);
}
- $random = substr($random, 0, $count);
+ if (strlen($random) < $count)
+ {
+ $random = '';
+
+ for ($i = 0; $i < $count; $i += 16)
+ {
+ $random_state = md5(unique_id() . $random_state);
+ $random .= pack('H*', md5($random_state));
+ }
+ $random = substr($random, 0, $count);
+ }
+
$hash = _hash_crypt_private($password, _hash_gensalt_private($random, $itoa64), $itoa64);
if (strlen($hash) == 34)
@@ -2867,6 +2878,12 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
global $cache, $db, $auth, $template, $config, $user;
global $phpEx, $phpbb_root_path, $msg_title, $msg_long_text;
+ // Do not display notices if we suppress them via @
+ if (error_reporting() == 0)
+ {
+ return;
+ }
+
// Message handler is stripping text. In case we need it, we are possible to define long text...
if (isset($msg_long_text) && $msg_long_text && !$msg_text)
{
@@ -2879,9 +2896,8 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
case E_WARNING:
// Check the error reporting level and return if the error level does not match
- // Additionally do not display notices if we suppress them via @
// If DEBUG is defined the default level is E_ALL
- if (($errno & ((defined('DEBUG') && error_reporting()) ? E_ALL : error_reporting())) == 0)
+ if (($errno & ((defined('DEBUG')) ? E_ALL : error_reporting())) == 0)
{
return;
}