summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-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 8e5caf9bb3..a47e78cdb2 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -1633,6 +1633,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"