summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorTjerk Meesters <datibbaw@php.net>2014-08-23 09:21:36 +0800
committerTjerk Meesters <datibbaw@php.net>2014-08-23 09:21:36 +0800
commit86674b5837bffe4486714f9661620020ee498f3b (patch)
tree6d3e613976e7f3eb0dad94fcced9b6e626df7c29 /ext
parentd1d0f55e225287f3314e3eaac9c550d16e679b7e (diff)
parentce9bdae33f101ff85c08d32ce5c2c6502a451d62 (diff)
downloadphp-git-86674b5837bffe4486714f9661620020ee498f3b.tar.gz
Merge branch 'PHP-5.6'
* PHP-5.6: Fixed #67694: Regression in session_regenerate_id() Conflicts: ext/session/session.c
Diffstat (limited to 'ext')
-rw-r--r--ext/session/session.c2
-rw-r--r--ext/session/tests/bug67694.phpt41
2 files changed, 42 insertions, 1 deletions
diff --git a/ext/session/session.c b/ext/session/session.c
index 8811a08caf..8632ba493c 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -1979,7 +1979,7 @@ static PHP_FUNCTION(session_regenerate_id)
RETURN_FALSE;
}
STR_RELEASE(PS(id));
- PS(id) = NULL;
+ memset(PS(session_data_hash),'\0', 16);
}
PS(id) = PS(mod)->s_create_sid(&PS(mod_data) TSRMLS_CC);
diff --git a/ext/session/tests/bug67694.phpt b/ext/session/tests/bug67694.phpt
new file mode 100644
index 0000000000..08a296923f
--- /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)