summaryrefslogtreecommitdiff
path: root/ext/session
diff options
context:
space:
mode:
authorSergei Morozov <morozov@tut.by>2017-07-17 12:39:34 +0300
committerNikita Popov <nikita.ppv@gmail.com>2017-07-18 22:25:22 +0200
commit5b12b46a19bc37d073c4ac32e62fbe823f786e09 (patch)
tree1c030495d94f335eaf9437edb2ee682cfb45ca76 /ext/session
parenta624ded4d3bf791526c9a99a59c20f03eaea8aa5 (diff)
downloadphp-git-5b12b46a19bc37d073c4ac32e62fbe823f786e09.tar.gz
Fixed bug #74936 - session_*() functions trigger a warning in read mode when the session is active
Diffstat (limited to 'ext/session')
-rw-r--r--ext/session/session.c6
-rw-r--r--ext/session/tests/bug74936.phpt20
-rw-r--r--ext/session/tests/session_cache_expire_basic.phpt2
-rw-r--r--ext/session/tests/session_cache_expire_variation1.phpt2
-rw-r--r--ext/session/tests/session_cache_expire_variation2.phpt2
-rw-r--r--ext/session/tests/session_cache_expire_variation3.phpt2
-rw-r--r--ext/session/tests/session_cache_limiter_variation1.phpt8
-rw-r--r--ext/session/tests/session_cache_limiter_variation2.phpt8
-rw-r--r--ext/session/tests/session_save_path_variation1.phpt8
9 files changed, 29 insertions, 29 deletions
diff --git a/ext/session/session.c b/ext/session/session.c
index 70f56a3ade..1e8321d1ac 100644
--- a/ext/session/session.c
+++ b/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));
}
diff --git a/ext/session/tests/bug74936.phpt b/ext/session/tests/bug74936.phpt
new file mode 100644
index 0000000000..aee7493c6c
--- /dev/null
+++ b/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===
diff --git a/ext/session/tests/session_cache_expire_basic.phpt b/ext/session/tests/session_cache_expire_basic.phpt
index fb240006e7..7166485937 100644
--- a/ext/session/tests/session_cache_expire_basic.phpt
+++ b/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)
diff --git a/ext/session/tests/session_cache_expire_variation1.phpt b/ext/session/tests/session_cache_expire_variation1.phpt
index 1a7324935f..9d0ba27fea 100644
--- a/ext/session/tests/session_cache_expire_variation1.phpt
+++ b/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)
diff --git a/ext/session/tests/session_cache_expire_variation2.phpt b/ext/session/tests/session_cache_expire_variation2.phpt
index c3daae6c55..f17f4711a9 100644
--- a/ext/session/tests/session_cache_expire_variation2.phpt
+++ b/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)
diff --git a/ext/session/tests/session_cache_expire_variation3.phpt b/ext/session/tests/session_cache_expire_variation3.phpt
index d9f78df491..c243c1f115 100644
--- a/ext/session/tests/session_cache_expire_variation3.phpt
+++ b/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)
diff --git a/ext/session/tests/session_cache_limiter_variation1.phpt b/ext/session/tests/session_cache_limiter_variation1.phpt
index 7ba621120d..5af208a909 100644
--- a/ext/session/tests/session_cache_limiter_variation1.phpt
+++ b/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
diff --git a/ext/session/tests/session_cache_limiter_variation2.phpt b/ext/session/tests/session_cache_limiter_variation2.phpt
index 94571017e1..eb63d99dac 100644
--- a/ext/session/tests/session_cache_limiter_variation2.phpt
+++ b/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
diff --git a/ext/session/tests/session_save_path_variation1.phpt b/ext/session/tests/session_save_path_variation1.phpt
index 7f7130dfb0..75533c8100 100644
--- a/ext/session/tests/session_save_path_variation1.phpt
+++ b/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