Browse Source

Fixed bug #74936 - session_*() functions trigger a warning in read mode when the session is active

pull/2638/head
Sergei Morozov 9 years ago
committed by Nikita Popov
parent
commit
5b12b46a19
  1. 5
      NEWS
  2. 6
      ext/session/session.c
  3. 20
      ext/session/tests/bug74936.phpt
  4. 2
      ext/session/tests/session_cache_expire_basic.phpt
  5. 2
      ext/session/tests/session_cache_expire_variation1.phpt
  6. 2
      ext/session/tests/session_cache_expire_variation2.phpt
  7. 2
      ext/session/tests/session_cache_expire_variation3.phpt
  8. 8
      ext/session/tests/session_cache_limiter_variation1.phpt
  9. 8
      ext/session/tests/session_cache_limiter_variation2.phpt
  10. 8
      ext/session/tests/session_save_path_variation1.phpt

5
NEWS

@ -5,6 +5,11 @@ PHP NEWS
- Session:
. Fixed bug #74892 (Url Rewriting (trans_sid) not working on urls that start
with "#"). (Andrew Nester)
. Fixed bug #74936 (session_cache_expire/cache_limiter/save_path() trigger a
warning in read mode). (morozov)
- SPL:
. Fixed bug #74669 (Unserialize ArrayIterator broken). (Andrew Nester)
20 Jul 2017, PHP 7.2.0beta1

6
ext/session/session.c

@ -1999,7 +1999,7 @@ static PHP_FUNCTION(session_save_path)
return;
}
if (PS(session_status) == php_session_active) {
if (name && PS(session_status) == php_session_active) {
php_error_docref(NULL, E_WARNING, "Cannot change save path when session is active");
RETURN_FALSE;
}
@ -2227,7 +2227,7 @@ static PHP_FUNCTION(session_cache_limiter)
return;
}
if (PS(session_status) == php_session_active) {
if (limiter && PS(session_status) == php_session_active) {
php_error_docref(NULL, E_WARNING, "Cannot change cache limiter when session is active");
RETURN_FALSE;
}
@ -2258,7 +2258,7 @@ static PHP_FUNCTION(session_cache_expire)
return;
}
if (PS(session_status) == php_session_active) {
if (expires && PS(session_status) == php_session_active) {
php_error_docref(NULL, E_WARNING, "Cannot change cache expire when session is active");
RETURN_LONG(PS(cache_expire));
}

20
ext/session/tests/bug74936.phpt

@ -0,0 +1,20 @@
--TEST--
Bug #74936 session_cache_expire() triggers a warning in read mode.
--SKIPIF--
<?php
include('skipif.inc');
?>
--FILE--
<?php
session_start();
var_dump(session_cache_expire());
var_dump(session_cache_limiter());
var_dump(session_save_path());
?>
===DONE===
--EXPECT--
int(180)
string(7) "nocache"
string(0) ""
===DONE===

2
ext/session/tests/session_cache_expire_basic.phpt

@ -32,8 +32,6 @@ int(180)
int(180)
int(1234567890)
bool(true)
Warning: session_cache_expire(): Cannot change cache expire when session is active in %s on line 17
int(180)
bool(true)
int(180)

2
ext/session/tests/session_cache_expire_variation1.phpt

@ -34,8 +34,6 @@ int(360)
int(360)
int(1234567890)
bool(true)
Warning: session_cache_expire(): Cannot change cache expire when session is active in %s on line 17
int(180)
bool(true)
int(180)

2
ext/session/tests/session_cache_expire_variation2.phpt

@ -33,8 +33,6 @@ int(360)
int(360)
int(1234567890)
bool(true)
Warning: session_cache_expire(): Cannot change cache expire when session is active in %s on line 18
int(180)
bool(true)
int(180)

2
ext/session/tests/session_cache_expire_variation3.phpt

@ -38,8 +38,6 @@ string(3) "180"
int(180)
string(10) "1234567890"
bool(true)
Warning: session_cache_expire(): Cannot change cache expire when session is active in %s on line 19
int(1234567890)
string(10) "1234567890"
bool(true)

8
ext/session/tests/session_cache_limiter_variation1.phpt

@ -32,15 +32,11 @@ ob_end_flush();
*** Testing session_cache_limiter() : variation ***
string(7) "nocache"
bool(true)
Warning: session_cache_limiter(): Cannot change cache limiter when session is active in %s on line 15
bool(false)
string(7) "nocache"
Warning: session_cache_limiter(): Cannot change cache limiter when session is active in %s on line 16
bool(false)
Warning: session_cache_limiter(): Cannot change cache limiter when session is active in %s on line 17
bool(false)
string(7) "nocache"
bool(true)
string(7) "nocache"
Done

8
ext/session/tests/session_cache_limiter_variation2.phpt

@ -31,15 +31,11 @@ ob_end_flush();
*** Testing session_cache_limiter() : variation ***
string(7) "nocache"
bool(true)
Warning: session_cache_limiter(): Cannot change cache limiter when session is active in %s on line 16
bool(false)
string(7) "nocache"
Warning: session_cache_limiter(): Cannot change cache limiter when session is active in %s on line 17
bool(false)
Warning: session_cache_limiter(): Cannot change cache limiter when session is active in %s on line 18
bool(false)
string(7) "nocache"
bool(true)
string(7) "nocache"
Done

8
ext/session/tests/session_save_path_variation1.phpt

@ -42,15 +42,11 @@ string(0) ""
string(0) ""
string(%d) "%stests"
bool(true)
Warning: session_save_path(): Cannot change save path when session is active in %s on line 19
bool(false)
string(%d) "%stests"
Warning: session_save_path(): Cannot change save path when session is active in %s on line 20
bool(false)
Warning: session_save_path(): Cannot change save path when session is active in %s on line 21
bool(false)
string(%d) "%stests"
bool(true)
string(%d) "%stests"
Done
Loading…
Cancel
Save