com php-src: Fixed #67694: Regression in session_regenerate _id(): NEWS ext/session/session.c ext/session/t ests/bug67694.phpt

From: Date: Sat, 23 Aug 2014 01:18:02 +0000
Subject: com php-src: Fixed #67694: Regression in session_regenerate _id(): NEWS ext/session/session.c ext/session/t ests/bug67694.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-80832@lists.php.net to get a copy of this message
Commit: ce9bdae33f101ff85c08d32ce5c2c6502a451d62 Author: Tjerk Meesters <datibbaw@php.net> Sat, 23 Aug 2014 09:18:02 +0800 Parents: 3b82c4e52063e74abaca637811629b521754de3d Branches: PHP-5.6 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=ce9bdae33f101ff85c08d32ce5c2c6502a451d62 Log: Fixed #67694: Regression in session_regenerate_id() Bugs: https://bugs.php.net/67694 Changed paths: M NEWS M ext/session/session.c A ext/session/tests/bug67694.phpt Diff: diff --git a/NEWS b/NEWS index 70780ce..ad21933 100644 --- a/NEWS +++ b/NEWS @@ -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: diff --git a/ext/session/session.c b/ext/session/session.c index d1a7a07..d440e6f 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -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); diff --git a/ext/session/tests/bug67694.phpt b/ext/session/tests/bug67694.phpt new file mode 100644 index 0000000..08a2969 --- /dev/null +++ b/ext/session/tests/bug67694.phpt @@ -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)

« previous php.cvs (#80832) next »