]> granicus.if.org Git - php/commitdiff
Fixed Bug #65475
authorYasuo Ohgaki <yohgaki@php.net>
Tue, 20 Aug 2013 23:08:55 +0000 (08:08 +0900)
committerYasuo Ohgaki <yohgaki@php.net>
Tue, 20 Aug 2013 23:11:59 +0000 (08:11 +0900)
15 files changed:
ext/session/mod_files.c
ext/session/mod_mm.c
ext/session/tests/bug65475.phpt [new file with mode: 0644]
ext/session/tests/rfc1867.phpt
ext/session/tests/rfc1867_cleanup.phpt
ext/session/tests/rfc1867_disabled.phpt
ext/session/tests/rfc1867_disabled_2.phpt
ext/session/tests/rfc1867_inter.phpt
ext/session/tests/rfc1867_no_name.phpt
ext/session/tests/rfc1867_sid_cookie.phpt
ext/session/tests/rfc1867_sid_get.phpt
ext/session/tests/rfc1867_sid_get_2.phpt
ext/session/tests/rfc1867_sid_only_cookie.phpt
ext/session/tests/rfc1867_sid_post.phpt
ext/session/tests/session_id_basic.phpt

index e5733b44f447c59c882ff901446250dc13748d12..004d9d4637963e414542b64cf68901a0315776e7 100644 (file)
@@ -338,13 +338,13 @@ PS_READ_FUNC(files)
                if (!PS(id)) {
                        return FAILURE;
                }
-               php_session_reset_id(TSRMLS_C);
                if (PS(use_cookies)) {
                        PS(send_cookie) = 1;
                }
+               php_session_reset_id(TSRMLS_C);
        }
 
-       ps_files_open(data, key TSRMLS_CC);
+       ps_files_open(data, PS(id) TSRMLS_CC);
        if (data->fd < 0) {
                return FAILURE;
        }
index 69c0da7bdb9aa5341b63d11b378055b1d21d2203..3d37b981bcf7f8339c70dff9e69426d198815a9b 100644 (file)
@@ -367,13 +367,13 @@ PS_READ_FUNC(mm)
                if (!PS(id)) {
                        return FAILURE;
                }
-               php_session_reset_id(TSRMLS_C);
                if (PS(use_cookies)) {
                        PS(send_cookie) = 1;
                }
+               php_session_reset_id(TSRMLS_C);
        }
 
-       sd = ps_sd_lookup(data, key, 0);
+       sd = ps_sd_lookup(data, PS(id), 0);
        if (sd) {
                *vallen = sd->datalen;
                *val = emalloc(sd->datalen + 1);
diff --git a/ext/session/tests/bug65475.phpt b/ext/session/tests/bug65475.phpt
new file mode 100644 (file)
index 0000000..7dc5463
--- /dev/null
@@ -0,0 +1,34 @@
+--TEST--
+Bug #65475: Session ID is not initialized when session.usr_strict_mode=1
+--INI--
+session.save_handler=files
+session.name=PHPSESSID
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--FILE--
+<?php
+ob_start();
+
+echo "Testing file module".PHP_EOL;
+session_start();
+$_SESSION['foo'] = 1234;
+$_SESSION['cnt'] = 1;
+$session_id = session_id();
+session_write_close();
+
+session_start();
+var_dump($session_id === session_id());
+$_SESSION['cnt']++;
+session_write_close();
+
+session_start();
+var_dump($session_id === session_id());
+var_dump($_SESSION['cnt']); // Should be int(2)
+session_write_close();
+
+--EXPECTF--
+Testing file module
+bool(true)
+bool(true)
+int(2)
+
index dc44e8b4435398ca3b237b1d033a2e6e2edf68f2..6b14bcb4ef1326b34d642ad8e626a68aaa5c13d5 100644 (file)
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
 upload_max_filesize=1024
 session.save_path=
 session.name=PHPSESSID
+session.use_strict_mode=0
 session.use_cookies=1
 session.use_only_cookies=0
 session.upload_progress.enabled=1
index f70b395d2244cf6fd2046c99c720e9d43e1c8391..f84385badada4bdbc411778722d729ab033709b5 100644 (file)
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
 upload_max_filesize=1024
 session.save_path=
 session.name=PHPSESSID
+session.use_strict_mode=0
 session.use_cookies=1
 session.use_only_cookies=0
 session.upload_progress.enabled=1
index 44900557913ce4b9b364e48689dcc126bfd0f420..550ee3a7a2403dde20637a278575499151adca6b 100644 (file)
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
 upload_max_filesize=1024
 session.save_path=
 session.name=PHPSESSID
+session.use_strict_mode=0
 session.use_cookies=1
 session.use_only_cookies=0
 session.upload_progress.enabled=0
index e878f4619fe7c77fe85c17110b3caac82d96e56f..83e97eeed1884665ed8052b5d78e1c6ae1cb7d29 100644 (file)
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
 upload_max_filesize=1024
 session.save_path=
 session.name=PHPSESSID
+session.use_strict_mode=0
 session.use_cookies=1
 session.use_only_cookies=0
 session.upload_progress.enabled=1
index 768637105c1245037a49cc5f185eca7bb67ff9d9..4d9b262230c109d9707940cd8e8e8aff7c3aeaf8 100644 (file)
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
 upload_max_filesize=1024
 session.save_path=
 session.name=PHPSESSID
+session.use_strict_mode=0
 session.use_cookies=1
 session.use_only_cookies=0
 session.upload_progress.enabled=1
index c1dda8156e3d749ca86a7b4adfd0b5b1c3f31467..d68a61d9295350525c979ae4bdb7e8e75b6c66c1 100644 (file)
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
 upload_max_filesize=1024
 session.save_path=
 session.name=PHPSESSID
+session.use_strict_mode=0
 session.use_cookies=1
 session.use_only_cookies=0
 session.upload_progress.enabled=1
index 735a5ac20121b6f692c1e339e081cda028019186..2864799335b15fdc3b73c62a2367b7e38c8981e4 100644 (file)
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
 upload_max_filesize=1024
 session.save_path=
 session.name=PHPSESSID
+session.use_strict_mode=0
 session.use_cookies=1
 session.use_only_cookies=0
 session.upload_progress.enabled=1
index cc5a793e7bf8572f6b54ffc903b3d05d5f5f48c5..e3a48a1c13dfe005e1228a18525f82d27a205edc 100644 (file)
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
 upload_max_filesize=1024
 session.save_path=
 session.name=PHPSESSID
+session.use_strict_mode=0
 session.use_cookies=1
 session.use_only_cookies=0
 session.upload_progress.enabled=1
index 1d22e5930b77b14d5cd0994aa689ede8f9e14eca..e21ca4ca2b43c2a5187a2a629069830c8636f6ef 100644 (file)
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
 upload_max_filesize=1024
 session.save_path=
 session.name=PHPSESSID
+session.use_strict_mode=0
 session.use_cookies=0
 session.use_only_cookies=0
 session.upload_progress.enabled=1
index 9a0105668fb7f76a863cb745d8cf3c70d4a687b8..41f6761fb9780d66f7c678aa91dcf6d3af63a68b 100644 (file)
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
 upload_max_filesize=1024
 session.save_path=
 session.name=PHPSESSID
+session.use_strict_mode=0
 session.use_cookies=1
 session.use_only_cookies=1
 session.upload_progress.enabled=1
index 7c1eb2de5de44916f704569592f0c73bac352e7f..107957f8dbcf223a83c5129f81cd6555419bf121 100644 (file)
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
 upload_max_filesize=1024
 session.save_path=
 session.name=PHPSESSID
+session.use_strict_mode=0
 session.use_cookies=1
 session.use_only_cookies=0
 session.upload_progress.enabled=1
index 5cb13c25eaf17fedabdccee84c7d1d3696580a13..852d2f9578ee30d64bc2baf6f12d62f9ae305bfc 100644 (file)
@@ -20,6 +20,8 @@ var_dump(session_id("test"));
 var_dump(session_id());
 var_dump(session_id("1234567890"));
 var_dump(session_id());
+// Turn off strice mode, since it does not allow uninitialized session ID
+ini_set('session.use_strict_mode',false);
 var_dump(session_start());
 var_dump(session_id());
 var_dump(session_destroy());