summaryrefslogtreecommitdiffstats
path: root/system/libraries
diff options
context:
space:
mode:
Diffstat (limited to 'system/libraries')
-rw-r--r--system/libraries/Email.php13
-rw-r--r--system/libraries/Encryption.php2
-rw-r--r--system/libraries/Migration.php4
-rw-r--r--system/libraries/Session/Session.php5
-rw-r--r--system/libraries/Session/drivers/Session_database_driver.php2
-rw-r--r--system/libraries/Session/drivers/Session_files_driver.php12
-rw-r--r--system/libraries/Session/drivers/Session_memcached_driver.php2
-rw-r--r--system/libraries/Session/drivers/Session_redis_driver.php2
-rw-r--r--system/libraries/Table.php2
-rw-r--r--system/libraries/Xmlrpc.php1
10 files changed, 31 insertions, 14 deletions
diff --git a/system/libraries/Email.php b/system/libraries/Email.php
index 4e0e0cd9f..45c5c09b9 100644
--- a/system/libraries/Email.php
+++ b/system/libraries/Email.php
@@ -2172,11 +2172,22 @@ class CI_Email {
/**
* Get Hostname
*
+ * There are only two legal types of hostname - either a fully
+ * qualified domain name (eg: "mail.example.com") or an IP literal
+ * (eg: "[1.2.3.4]").
+ *
+ * @link https://tools.ietf.org/html/rfc5321#section-2.3.5
+ * @link http://cbl.abuseat.org/namingproblems.html
* @return string
*/
protected function _get_hostname()
{
- return isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'localhost.localdomain';
+ if (isset($_SERVER['SERVER_NAME']))
+ {
+ return $_SERVER['SERVER_NAME'];
+ }
+
+ return isset($_SERVER['SERVER_ADDR']) ? '['.$_SERVER['SERVER_ADDR'].']' : '[127.0.0.1]';
}
// --------------------------------------------------------------------
diff --git a/system/libraries/Encryption.php b/system/libraries/Encryption.php
index fad4ea7f8..e3e68139a 100644
--- a/system/libraries/Encryption.php
+++ b/system/libraries/Encryption.php
@@ -160,7 +160,7 @@ class CI_Encryption {
if ( ! $this->_drivers['mcrypt'] && ! $this->_drivers['openssl'])
{
- return show_error('Encryption: Unable to find an available encryption driver.');
+ show_error('Encryption: Unable to find an available encryption driver.');
}
isset(self::$func_override) OR self::$func_override = (extension_loaded('mbstring') && ini_get('mbstring.func_override'));
diff --git a/system/libraries/Migration.php b/system/libraries/Migration.php
index 8ce4243fe..ae36a3b45 100644
--- a/system/libraries/Migration.php
+++ b/system/libraries/Migration.php
@@ -421,11 +421,11 @@ class CI_Migration {
* Stores the current schema version
*
* @param string $migration Migration reached
- * @return void Outputs a report of the migration
+ * @return void
*/
protected function _update_version($migration)
{
- return $this->db->update($this->_migration_table, array(
+ $this->db->update($this->_migration_table, array(
'version' => $migration
));
}
diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php
index 2551e54e9..de9b1e829 100644
--- a/system/libraries/Session/Session.php
+++ b/system/libraries/Session/Session.php
@@ -143,8 +143,7 @@ class CI_Session {
session_start();
// Is session ID auto-regeneration configured? (ignoring ajax requests)
- if ( ! empty($_SERVER['HTTP_X_REQUESTED_WITH'])
- && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'
+ if ((empty($_SERVER['HTTP_X_REQUESTED_WITH']) OR strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest')
&& ($regenerate_time = config_item('sess_time_to_update')) > 0
)
{
@@ -154,7 +153,7 @@ class CI_Session {
}
elseif ($_SESSION['__ci_last_regenerate'] < (time() - $regenerate_time))
{
- $this->sess_regenerate(FALSE);
+ $this->sess_regenerate((bool) config_item('sess_regenerate_destroy'));
}
}
// Another work-around ... PHP doesn't seem to send the session cookie
diff --git a/system/libraries/Session/drivers/Session_database_driver.php b/system/libraries/Session/drivers/Session_database_driver.php
index 0ec6e34f0..20cec00fd 100644
--- a/system/libraries/Session/drivers/Session_database_driver.php
+++ b/system/libraries/Session/drivers/Session_database_driver.php
@@ -252,7 +252,7 @@ class CI_Session_database_driver extends CI_Session_driver implements SessionHan
*
* Releases locks
*
- * @return void
+ * @return bool
*/
public function close()
{
diff --git a/system/libraries/Session/drivers/Session_files_driver.php b/system/libraries/Session/drivers/Session_files_driver.php
index ad8315d52..5852277e8 100644
--- a/system/libraries/Session/drivers/Session_files_driver.php
+++ b/system/libraries/Session/drivers/Session_files_driver.php
@@ -107,7 +107,7 @@ class CI_Session_files_driver extends CI_Session_driver implements SessionHandle
* Sanitizes the save_path directory.
*
* @param string $save_path Path to session files' directory
- * @param string $name Session cookie name, unused
+ * @param string $name Session cookie name
* @return bool
*/
public function open($save_path, $name)
@@ -269,7 +269,7 @@ class CI_Session_files_driver extends CI_Session_driver implements SessionHandle
*
* Releases locks and closes file descriptor.
*
- * @return void
+ * @return bool
*/
public function close()
{
@@ -332,10 +332,16 @@ class CI_Session_files_driver extends CI_Session_driver implements SessionHandle
$ts = time() - $maxlifetime;
+ $pattern = sprintf(
+ '/^%s[0-9a-f]{%d}$/',
+ preg_quote($this->_config['cookie_name'], '/'),
+ ($this->_config['match_ip'] === TRUE ? 72 : 40)
+ );
+
foreach ($files as $file)
{
// If the filename doesn't match this pattern, it's either not a session file or is not ours
- if ( ! preg_match('/(?:[0-9a-f]{32})?[0-9a-f]{40}$/i', $file)
+ if ( ! preg_match($pattern, $file)
OR ! is_file($this->_config['save_path'].DIRECTORY_SEPARATOR.$file)
OR ($mtime = filemtime($this->_config['save_path'].DIRECTORY_SEPARATOR.$file)) === FALSE
OR $mtime > $ts)
diff --git a/system/libraries/Session/drivers/Session_memcached_driver.php b/system/libraries/Session/drivers/Session_memcached_driver.php
index 00112c88c..600b8ca66 100644
--- a/system/libraries/Session/drivers/Session_memcached_driver.php
+++ b/system/libraries/Session/drivers/Session_memcached_driver.php
@@ -229,7 +229,7 @@ class CI_Session_memcached_driver extends CI_Session_driver implements SessionHa
*
* Releases locks and closes connection.
*
- * @return void
+ * @return bool
*/
public function close()
{
diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php
index c53975ae4..c3c75b3b6 100644
--- a/system/libraries/Session/drivers/Session_redis_driver.php
+++ b/system/libraries/Session/drivers/Session_redis_driver.php
@@ -230,7 +230,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle
*
* Releases locks and closes connection.
*
- * @return void
+ * @return bool
*/
public function close()
{
diff --git a/system/libraries/Table.php b/system/libraries/Table.php
index 7a39dfc77..2d9823093 100644
--- a/system/libraries/Table.php
+++ b/system/libraries/Table.php
@@ -502,7 +502,7 @@ class CI_Table {
/**
* Default Template
*
- * @return void
+ * @return array
*/
protected function _default_template()
{
diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php
index 9d7cbffa2..8fbc18f04 100644
--- a/system/libraries/Xmlrpc.php
+++ b/system/libraries/Xmlrpc.php
@@ -1792,6 +1792,7 @@ class XML_RPC_Values extends CI_Xmlrpc
*
* @param string
* @param mixed
+ * @return string
*/
public function serializedata($typ, $val)
{