Fixed #67694: Regression in session_regenerate_id()

This commit is contained in:
Tjerk Meesters 2014-08-23 09:18:02 +08:00
parent 3b82c4e520
commit ce9bdae33f
3 changed files with 45 additions and 1 deletions

3
NEWS
View file

@ -16,6 +16,9 @@ PHP NEWS
- Zlib:
. Fixed bug #67865 (internal corruption phar error). Mike
- Session:
. Fixed bug #67694 (Regression in session_regenerate_id()). (Tjerk)
14 Aug 2014, PHP 5.6.0 Release Candidate 4
- COM:

View file

@ -1994,7 +1994,7 @@ static PHP_FUNCTION(session_regenerate_id)
RETURN_FALSE;
}
efree(PS(id));
PS(id) = NULL;
memset(PS(session_data_hash),'\0', 16);
}
PS(id) = PS(mod)->s_create_sid(&PS(mod_data), NULL TSRMLS_CC);

View file

@ -0,0 +1,41 @@
--TEST--
Bug #67694 Regression in session_regenerate_id()
--INI--
session.save_handler = files
session.name=PHPSESSID
session.auto_start = 0
session.use_cookies = 0
session.cache_limiter =
date.timezone = UTC
--SKIPIF--
<?php include('skipif.inc'); ?>
--FILE--
<?php
$data = date('r');
session_start();
$id = session_id();
$_SESSION['init'] = $data;
session_write_close();
session_id($id);
session_start();
session_regenerate_id(false);
$newid = session_id();
var_dump($newid != $id);
session_write_close();
unset($_SESSION);
session_id($newid);
session_start();
var_dump(isset($_SESSION['init']) && $data == $_SESSION['init']);
--EXPECT--
bool(true)
bool(true)