File tree Expand file tree Collapse file tree 2 files changed +38
-1
lines changed
Expand file tree Collapse file tree 2 files changed +38
-1
lines changed Original file line number Diff line number Diff line change @@ -2051,7 +2051,7 @@ PHP_FUNCTION(session_set_save_handler)
20512051 remove_user_shutdown_function ("session_shutdown" , sizeof ("session_shutdown" ) - 1 );
20522052 }
20532053
2054- if (PS (mod ) && PS ( session_status ) != php_session_active && PS (mod ) != & ps_mod_user ) {
2054+ if (PS (session_status ) != php_session_active && (! PS (mod ) || PS ( mod ) != & ps_mod_user ) ) {
20552055 ini_name = zend_string_init ("session.save_handler" , sizeof ("session.save_handler" ) - 1 , 0 );
20562056 ini_val = zend_string_init ("user" , sizeof ("user" ) - 1 , 0 );
20572057 PS (set_handler ) = 1 ;
Original file line number Diff line number Diff line change 1+ --TEST--
2+ Bug #80889 (Cannot set save handler when save_handler is invalid)
3+ --SKIPIF--
4+ <?php include ('skipif.inc ' ); ?>
5+ --INI--
6+ session.save_handler=whatever
7+ --FILE--
8+ <?php
9+ class DummyHandler implements SessionHandlerInterface {
10+ public function open ($ savePath , $ sessionName ) {
11+ return true ;
12+ }
13+ public function close () {
14+ return true ;
15+ }
16+ public function read ($ id ) {
17+ return '' ;
18+ }
19+ public function write ($ id , $ data ) {
20+ return true ;
21+ }
22+ public function destroy ($ id ) {
23+ return true ;
24+ }
25+ public function gc ($ maxlifetime ) {
26+ return true ;
27+ }
28+ }
29+
30+ $ initHandler = ini_get ('session.save_handler ' );
31+ session_set_save_handler (new DummyHandler ());
32+ $ setHandler = ini_get ('session.save_handler ' );
33+ var_dump ($ initHandler , $ setHandler );
34+ ?>
35+ --EXPECT--
36+ string(8) "whatever"
37+ string(4) "user"
You can’t perform that action at this time.
0 commit comments