mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3: Fix #79413: session_create_id() fails for active sessions
This commit is contained in:
commit
d533fa15e6
4 changed files with 21 additions and 3 deletions
3
NEWS
3
NEWS
|
@ -26,6 +26,9 @@ PHP NEWS
|
|||
. Fixed bug #79412 (Opcache chokes and uses 100% CPU on specific script).
|
||||
(Dmitry)
|
||||
|
||||
- Session:
|
||||
. Fixed bug #79413 (session_create_id() fails for active sessions). (cmb)
|
||||
|
||||
- Shmop:
|
||||
. Fixed bug #79427 (Integer Overflow in shmop_open()). (cmb)
|
||||
|
||||
|
|
|
@ -2232,7 +2232,7 @@ static PHP_FUNCTION(session_regenerate_id)
|
|||
RETURN_FALSE;
|
||||
}
|
||||
if (PS(use_strict_mode) && PS(mod)->s_validate_sid &&
|
||||
PS(mod)->s_validate_sid(&PS(mod_data), PS(id)) == FAILURE) {
|
||||
PS(mod)->s_validate_sid(&PS(mod_data), PS(id)) == SUCCESS) {
|
||||
zend_string_release_ex(PS(id), 0);
|
||||
PS(id) = PS(mod)->s_create_sid(&PS(mod_data));
|
||||
if (!PS(id)) {
|
||||
|
@ -2294,7 +2294,7 @@ static PHP_FUNCTION(session_create_id)
|
|||
break;
|
||||
} else {
|
||||
/* Detect collision and retry */
|
||||
if (PS(mod)->s_validate_sid(&PS(mod_data), new_id) == FAILURE) {
|
||||
if (PS(mod)->s_validate_sid(&PS(mod_data), new_id) == SUCCESS) {
|
||||
zend_string_release_ex(new_id, 0);
|
||||
new_id = NULL;
|
||||
continue;
|
||||
|
|
|
@ -50,7 +50,7 @@ class MySessionHandler implements SessionHandlerInterface, SessionIdInterface, S
|
|||
|
||||
public function validateId($key)
|
||||
{
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
15
ext/session/tests/bug79413.phpt
Normal file
15
ext/session/tests/bug79413.phpt
Normal file
|
@ -0,0 +1,15 @@
|
|||
--TEST--
|
||||
Bug #79413 (session_create_id() fails for active sessions)
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!extension_loaded('session')) die('skip session extension not available');
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
session_start();
|
||||
$old = session_id();
|
||||
$new = session_create_id();
|
||||
var_dump($new !== $old);
|
||||
?>
|
||||
--EXPECT--
|
||||
bool(true)
|
Loading…
Add table
Add a link
Reference in a new issue