updated core to 7.73
This commit is contained in:
+32
-7
@@ -79,7 +79,7 @@ function _drupal_session_read($sid) {
|
||||
// Handle the case of first time visitors and clients that don't store
|
||||
// cookies (eg. web crawlers).
|
||||
$insecure_session_name = substr(session_name(), 1);
|
||||
if (!isset($_COOKIE[session_name()]) && !isset($_COOKIE[$insecure_session_name])) {
|
||||
if (empty($sid) || (!isset($_COOKIE[session_name()]) && !isset($_COOKIE[$insecure_session_name]))) {
|
||||
$user = drupal_anonymous_user();
|
||||
return '';
|
||||
}
|
||||
@@ -163,7 +163,7 @@ function _drupal_session_write($sid, $value) {
|
||||
try {
|
||||
if (!drupal_save_session()) {
|
||||
// We don't have anything to do if we are not allowed to save the session.
|
||||
return;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// Check whether $_SESSION has been changed in this request.
|
||||
@@ -263,10 +263,10 @@ function drupal_session_initialize() {
|
||||
// Less random sessions (which are much faster to generate) are used for
|
||||
// anonymous users than are generated in drupal_session_regenerate() when
|
||||
// a user becomes authenticated.
|
||||
session_id(drupal_hash_base64(uniqid(mt_rand(), TRUE)));
|
||||
session_id(drupal_random_key());
|
||||
if ($is_https && variable_get('https', FALSE)) {
|
||||
$insecure_session_name = substr(session_name(), 1);
|
||||
$session_id = drupal_hash_base64(uniqid(mt_rand(), TRUE));
|
||||
$session_id = drupal_random_key();
|
||||
$_COOKIE[$insecure_session_name] = $session_id;
|
||||
}
|
||||
}
|
||||
@@ -360,7 +360,7 @@ function drupal_session_regenerate() {
|
||||
$old_insecure_session_id = $_COOKIE[$insecure_session_name];
|
||||
}
|
||||
$params = session_get_cookie_params();
|
||||
$session_id = drupal_hash_base64(uniqid(mt_rand(), TRUE) . drupal_random_bytes(55));
|
||||
$session_id = drupal_random_key();
|
||||
// If a session cookie lifetime is set, the session will expire
|
||||
// $params['lifetime'] seconds from the current request. If it is not set,
|
||||
// it will expire when the browser is closed.
|
||||
@@ -371,8 +371,11 @@ function drupal_session_regenerate() {
|
||||
|
||||
if (drupal_session_started()) {
|
||||
$old_session_id = session_id();
|
||||
_drupal_session_regenerate_existing();
|
||||
}
|
||||
else {
|
||||
session_id(drupal_random_key());
|
||||
}
|
||||
session_id(drupal_hash_base64(uniqid(mt_rand(), TRUE) . drupal_random_bytes(55)));
|
||||
|
||||
if (isset($old_session_id)) {
|
||||
$params = session_get_cookie_params();
|
||||
@@ -412,6 +415,26 @@ function drupal_session_regenerate() {
|
||||
date_default_timezone_set(drupal_get_user_timezone());
|
||||
}
|
||||
|
||||
/**
|
||||
* Regenerates an existing session.
|
||||
*/
|
||||
function _drupal_session_regenerate_existing() {
|
||||
global $user;
|
||||
// Preserve existing settings for the saving of sessions.
|
||||
$original_save_session_status = drupal_save_session();
|
||||
// Turn off saving of sessions.
|
||||
drupal_save_session(FALSE);
|
||||
session_write_close();
|
||||
drupal_session_started(FALSE);
|
||||
// Preserve the user object, as starting a new session will reset it.
|
||||
$original_user = $user;
|
||||
session_id(drupal_random_key());
|
||||
drupal_session_start();
|
||||
$user = $original_user;
|
||||
// Restore the original settings for the saving of sessions.
|
||||
drupal_save_session($original_save_session_status);
|
||||
}
|
||||
|
||||
/**
|
||||
* Session handler assigned by session_set_save_handler().
|
||||
*
|
||||
@@ -425,7 +448,7 @@ function _drupal_session_destroy($sid) {
|
||||
|
||||
// Nothing to do if we are not allowed to change the session.
|
||||
if (!drupal_save_session()) {
|
||||
return;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// Delete session data.
|
||||
@@ -446,6 +469,8 @@ function _drupal_session_destroy($sid) {
|
||||
elseif (variable_get('https', FALSE)) {
|
||||
_drupal_session_delete_cookie('S' . session_name(), TRUE);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user