summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArpad Ray <arraypad@gmail.com>2012-12-13 23:59:34 +0000
committerArpad Ray <arraypad@gmail.com>2012-12-13 23:59:34 +0000
commit61bf1f4ee6daa9c4f9fae2086d3bad2d9898df3e (patch)
tree5df430b921f8fae2caf4dede0de0c70f7f1d2bf6
parent2098cc7e9dee107d7e5886e3d886f75510690eac (diff)
parent6566ea61732a1ab42c1a57e60adc96788cb0feb2 (diff)
downloadphp-git-61bf1f4ee6daa9c4f9fae2086d3bad2d9898df3e.tar.gz
Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4: Fix #63379 - Don't reset mod_user_is_open in destroy
-rw-r--r--ext/session/mod_user_class.c1
-rw-r--r--ext/session/tests/bug63379.phpt57
-rw-r--r--ext/session/tests/bug63379_nodestroy.phpt57
3 files changed, 114 insertions, 1 deletions
diff --git a/ext/session/mod_user_class.c b/ext/session/mod_user_class.c
index 70d2f40df1..4edac28b86 100644
--- a/ext/session/mod_user_class.c
+++ b/ext/session/mod_user_class.c
@@ -121,7 +121,6 @@ PHP_METHOD(SessionHandler, destroy)
return;
}
- PS(mod_user_is_open) = 0;
RETVAL_BOOL(SUCCESS == PS(default_mod)->s_destroy(&PS(mod_data), key TSRMLS_CC));
}
/* }}} */
diff --git a/ext/session/tests/bug63379.phpt b/ext/session/tests/bug63379.phpt
new file mode 100644
index 0000000000..80941828c8
--- /dev/null
+++ b/ext/session/tests/bug63379.phpt
@@ -0,0 +1,57 @@
+--TEST--
+Bug #63379: Warning when using session_regenerate_id(TRUE) with a SessionHandler
+--INI--
+session.save_handler=files
+session.name=PHPSESSID
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--FILE--
+<?php
+
+ob_start();
+
+$handler = new SessionHandler;
+session_set_save_handler($handler);
+
+session_start();
+
+$_SESSION['foo'] = 'hello';
+var_dump($_SESSION);
+
+session_regenerate_id(true);
+
+echo "*** Regenerated ***\n";
+var_dump($_SESSION);
+
+$_SESSION['bar'] = 'world';
+
+var_dump($_SESSION);
+
+session_write_close();
+session_unset();
+
+session_start();
+var_dump($_SESSION);
+
+--EXPECTF--
+array(1) {
+ ["foo"]=>
+ string(5) "hello"
+}
+*** Regenerated ***
+array(1) {
+ ["foo"]=>
+ string(5) "hello"
+}
+array(2) {
+ ["foo"]=>
+ string(5) "hello"
+ ["bar"]=>
+ string(5) "world"
+}
+array(2) {
+ ["foo"]=>
+ string(5) "hello"
+ ["bar"]=>
+ string(5) "world"
+}
diff --git a/ext/session/tests/bug63379_nodestroy.phpt b/ext/session/tests/bug63379_nodestroy.phpt
new file mode 100644
index 0000000000..03a9ae74d9
--- /dev/null
+++ b/ext/session/tests/bug63379_nodestroy.phpt
@@ -0,0 +1,57 @@
+--TEST--
+Bug #63379: Warning when using session_regenerate_id(TRUE) with a SessionHandler
+--INI--
+session.save_handler=files
+session.name=PHPSESSID
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--FILE--
+<?php
+
+ob_start();
+
+$handler = new SessionHandler;
+session_set_save_handler($handler);
+
+session_start();
+
+$_SESSION['foo'] = 'hello';
+var_dump($_SESSION);
+
+session_regenerate_id(false);
+
+echo "*** Regenerated ***\n";
+var_dump($_SESSION);
+
+$_SESSION['bar'] = 'world';
+
+var_dump($_SESSION);
+
+session_write_close();
+session_unset();
+
+session_start();
+var_dump($_SESSION);
+
+--EXPECTF--
+array(1) {
+ ["foo"]=>
+ string(5) "hello"
+}
+*** Regenerated ***
+array(1) {
+ ["foo"]=>
+ string(5) "hello"
+}
+array(2) {
+ ["foo"]=>
+ string(5) "hello"
+ ["bar"]=>
+ string(5) "world"
+}
+array(2) {
+ ["foo"]=>
+ string(5) "hello"
+ ["bar"]=>
+ string(5) "world"
+}