summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArpad Ray <arraypad@gmail.com>2012-12-13 23:51:43 +0000
committerArpad Ray <arraypad@gmail.com>2012-12-13 23:51:43 +0000
commit6566ea61732a1ab42c1a57e60adc96788cb0feb2 (patch)
treefdac3cf4cb2ce63bf057b308d26500488a188145
parentef37055c344da33f6f42b4cdbf9c1a928a52063a (diff)
downloadphp-git-6566ea61732a1ab42c1a57e60adc96788cb0feb2.tar.gz
Fix #63379 - Don't reset mod_user_is_open in destroy
The parent handler is still open so the reset here was in error.
-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"
+}