summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYasuo Ohgaki <yohgaki@php.net>2016-08-30 15:58:55 +0900
committerYasuo Ohgaki <yohgaki@php.net>2016-08-30 15:58:55 +0900
commitf5cd6e5710218747aba7e38bee4055e4d93f8af9 (patch)
treea28bfecc26a3f4c7587d736b684cb6e419ce386f
parent38a7c0e0f72103c998b9c4ebcaca4b4d88ec57ab (diff)
parentb5f2f6fbd802ad3bc4fb37185e9e776bb089db56 (diff)
downloadphp-git-f5cd6e5710218747aba7e38bee4055e4d93f8af9.tar.gz
Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0: Fixed bug #72940 SID always return "name=ID", even if session cookie exist
-rw-r--r--ext/session/session.c1
-rw-r--r--ext/session/tests/bug72940.phpt35
2 files changed, 36 insertions, 0 deletions
diff --git a/ext/session/session.c b/ext/session/session.c
index 022f125e08..1c0bde9d37 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -1480,6 +1480,7 @@ PHPAPI void php_session_start(void) /* {{{ */
if (Z_TYPE_P(data) == IS_ARRAY && (ppid = zend_hash_str_find(Z_ARRVAL_P(data), PS(session_name), lensess))) {
ppid2sid(ppid);
PS(send_cookie) = 0;
+ PS(define_sid) = 0;
}
}
diff --git a/ext/session/tests/bug72940.phpt b/ext/session/tests/bug72940.phpt
new file mode 100644
index 0000000000..5f3c790405
--- /dev/null
+++ b/ext/session/tests/bug72940.phpt
@@ -0,0 +1,35 @@
+--TEST--
+Bug #72940 - SID always defined
+--INI--
+error_reporting=-1
+session.save_path=
+session.name=PHPSESSID
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--COOKIE--
+PHPSESSID=bug72940test
+--GET--
+PHPSESSID=bug72940get
+--FILE--
+<?php
+ob_start();
+
+ini_set('session.use_strict_mode', 0);
+ini_set('session.use_cookies', 1);
+ini_set('session.use_only_cookies', 0);
+session_start();
+var_dump(session_id(), SID);
+session_destroy();
+
+ini_set('session.use_strict_mode', 0);
+ini_set('session.use_cookies', 0);
+ini_set('session.use_only_cookies', 0);
+session_start();
+var_dump(session_id(), SID);
+session_destroy();
+?>
+--EXPECTF--
+string(12) "bug72940test"
+string(0) ""
+string(11) "bug72940get"
+string(21) "PHPSESSID=bug72940get"