File tree Expand file tree Collapse file tree 3 files changed +42
-1
lines changed
Expand file tree Collapse file tree 3 files changed +42
-1
lines changed Original file line number Diff line number Diff line change @@ -9,6 +9,10 @@ PHP NEWS
99 . Fixed bug #80783 (PDO ODBC truncates BLOB records at every 256th byte).
1010 (cmb)
1111
12+ - Session:
13+ . Fixed bug #80889 (Cannot set save handler when save_handler is invalid).
14+ (cmb)
15+
121601 Apr 2021, PHP 7.4.17
1317
1418- Core:
Original file line number Diff line number Diff line change @@ -2031,7 +2031,7 @@ static PHP_FUNCTION(session_set_save_handler)
20312031 remove_user_shutdown_function ("session_shutdown" , sizeof ("session_shutdown" ) - 1 );
20322032 }
20332033
2034- if (PS (mod ) && PS ( session_status ) != php_session_active && PS (mod ) != & ps_mod_user ) {
2034+ if (PS (session_status ) != php_session_active && (! PS (mod ) || PS ( mod ) != & ps_mod_user ) ) {
20352035 ini_name = zend_string_init ("session.save_handler" , sizeof ("session.save_handler" ) - 1 , 0 );
20362036 ini_val = zend_string_init ("user" , sizeof ("user" ) - 1 , 0 );
20372037 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