diff --git a/ext/session/session.c b/ext/session/session.c index 1fa9319fcfac1..2b3fa78496cfb 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -2066,7 +2066,7 @@ static PHP_FUNCTION(session_set_save_handler) } } - if (PS(mod) && PS(mod) != &ps_mod_user) { + if (!PS(mod) || PS(mod) != &ps_mod_user) { ini_name = zend_string_init("session.save_handler", sizeof("session.save_handler") - 1, 0); ini_val = zend_string_init("user", sizeof("user") - 1, 0); PS(set_handler) = 1; diff --git a/ext/session/tests/bug80889a.phpt b/ext/session/tests/bug80889a.phpt new file mode 100644 index 0000000000000..ff0c0253823af --- /dev/null +++ b/ext/session/tests/bug80889a.phpt @@ -0,0 +1,35 @@ +--TEST-- +Bug #80889 (Cannot set save handler when save_handler is invalid) +--SKIPIF-- + +--INI-- +session.save_handler=whatever +--FILE-- + +--EXPECT-- +string(8) "whatever" +string(4) "user"