diff options
| author | Ondřej Surý <ondrej@sury.org> | 2014-08-28 14:35:57 +0200 |
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2014-08-28 14:35:57 +0200 |
| commit | d73ee84cfbc86e793602b826adb0dd6bce042838 (patch) | |
| tree | 0d5fec0451150996f89b257b8717d15bb1d20170 /ext/session | |
| parent | dee9227b6f6c89113e8964649afaf57c2ebf1027 (diff) | |
| download | php-d73ee84cfbc86e793602b826adb0dd6bce042838.tar.gz | |
New upstream version 5.6.0+dfsgupstream/5.6.0+dfsg
Diffstat (limited to 'ext/session')
| -rw-r--r-- | ext/session/session.c | 2 | ||||
| -rw-r--r-- | ext/session/tests/bug67694.phpt | 41 |
2 files changed, 42 insertions, 1 deletions
diff --git a/ext/session/session.c b/ext/session/session.c index d1a7a073a..d440e6fdd 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 000000000..08a296923 --- /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) |
