From 9fca6a79538c259131649cbfed8a610aedd7c029 Mon Sep 17 00:00:00 2001 From: "Michael Kaufmann (d00p)" Date: Tue, 24 Dec 2013 09:48:57 +0100 Subject: [PATCH] don't rely on Database-functions for getting sql/sql_root data in error-reporting Signed-off-by: Michael Kaufmann (d00p) --- lib/classes/database/class.Database.php | 28 +++++++++++++++---------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/lib/classes/database/class.Database.php b/lib/classes/database/class.Database.php index 8d9ace10..709072a6 100644 --- a/lib/classes/database/class.Database.php +++ b/lib/classes/database/class.Database.php @@ -328,25 +328,31 @@ class Database { if ($showerror) { - Database::needSqlData(); - $sqldata = Database::getSqlData(); - Database::needRoot(true); - Database::needSqlData(); - $sqlrootdata = Database::getSqlData(); + // include userdata.inc.php + require FROXLOR_INSTALL_DIR."/lib/userdata.inc.php"; + + // le format + if (self::$_needroot == true + && isset($sql['root_user']) + && isset($sql['root_password']) + && (!isset($sql_root) || !is_array($sql_root)) + ) { + $sql_root = array(0 => array('caption' => 'Default', 'host' => $sql['host'], 'user' => $sql['root_user'], 'password' => $sql['root_password'])); + } // hide username/password in messages $error_message = $error->getMessage(); $error_trace = $error->getTraceAsString(); // error-message - $error_message = str_replace($sqldata['passwd'], 'DB_UNPRIV_PWD', $error_message); - $error_message = str_replace($sqlrootdata['passwd'], 'DB_ROOT_PWD', $error_message); + $error_message = str_replace($sql['password'], 'DB_UNPRIV_PWD', $error_message); + $error_message = str_replace($sql_root[0]['password'], 'DB_ROOT_PWD', $error_message); // error-trace - $error_trace = str_replace($sqldata['passwd'], 'DB_UNPRIV_PWD', $error_trace); - $error_trace = str_replace($sqlrootdata['passwd'], 'DB_ROOT_PWD', $error_trace); + $error_trace = str_replace($sql['password'], 'DB_UNPRIV_PWD', $error_trace); + $error_trace = str_replace($sql_root[0]['password'], 'DB_ROOT_PWD', $error_trace); // clean up sensitive data - unset($sqldata); - unset($sqlrootdata); + unset($sql); + unset($sql_root); if ((isset($theme) && $theme != '') && !isset($_SERVER['SHELL']) || (isset($_SERVER['SHELL']) && $_SERVER['SHELL'] == '')