Skip to content

Commit 1641158

Browse files
author
Yasuo Ohgaki
committed
Fixed Bug #65475
1 parent 268c288 commit 1641158

15 files changed

+51
-4
lines changed

ext/session/mod_files.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -338,13 +338,13 @@ PS_READ_FUNC(files)
338338
if (!PS(id)) {
339339
return FAILURE;
340340
}
341-
php_session_reset_id(TSRMLS_C);
342341
if (PS(use_cookies)) {
343342
PS(send_cookie) = 1;
344343
}
344+
php_session_reset_id(TSRMLS_C);
345345
}
346346

347-
ps_files_open(data, key TSRMLS_CC);
347+
ps_files_open(data, PS(id) TSRMLS_CC);
348348
if (data->fd < 0) {
349349
return FAILURE;
350350
}

ext/session/mod_mm.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -367,13 +367,13 @@ PS_READ_FUNC(mm)
367367
if (!PS(id)) {
368368
return FAILURE;
369369
}
370-
php_session_reset_id(TSRMLS_C);
371370
if (PS(use_cookies)) {
372371
PS(send_cookie) = 1;
373372
}
373+
php_session_reset_id(TSRMLS_C);
374374
}
375375

376-
sd = ps_sd_lookup(data, key, 0);
376+
sd = ps_sd_lookup(data, PS(id), 0);
377377
if (sd) {
378378
*vallen = sd->datalen;
379379
*val = emalloc(sd->datalen + 1);

ext/session/tests/bug65475.phpt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
--TEST--
2+
Bug #65475: Session ID is not initialized when session.usr_strict_mode=1
3+
--INI--
4+
session.save_handler=files
5+
session.name=PHPSESSID
6+
--SKIPIF--
7+
<?php include('skipif.inc'); ?>
8+
--FILE--
9+
<?php
10+
ob_start();
11+
12+
echo "Testing file module".PHP_EOL;
13+
session_start();
14+
$_SESSION['foo'] = 1234;
15+
$_SESSION['cnt'] = 1;
16+
$session_id = session_id();
17+
session_write_close();
18+
19+
session_start();
20+
var_dump($session_id === session_id());
21+
$_SESSION['cnt']++;
22+
session_write_close();
23+
24+
session_start();
25+
var_dump($session_id === session_id());
26+
var_dump($_SESSION['cnt']); // Should be int(2)
27+
session_write_close();
28+
29+
--EXPECTF--
30+
Testing file module
31+
bool(true)
32+
bool(true)
33+
int(2)
34+

ext/session/tests/rfc1867.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
77
upload_max_filesize=1024
88
session.save_path=
99
session.name=PHPSESSID
10+
session.use_strict_mode=0
1011
session.use_cookies=1
1112
session.use_only_cookies=0
1213
session.upload_progress.enabled=1

ext/session/tests/rfc1867_cleanup.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
77
upload_max_filesize=1024
88
session.save_path=
99
session.name=PHPSESSID
10+
session.use_strict_mode=0
1011
session.use_cookies=1
1112
session.use_only_cookies=0
1213
session.upload_progress.enabled=1

ext/session/tests/rfc1867_disabled.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
77
upload_max_filesize=1024
88
session.save_path=
99
session.name=PHPSESSID
10+
session.use_strict_mode=0
1011
session.use_cookies=1
1112
session.use_only_cookies=0
1213
session.upload_progress.enabled=0

ext/session/tests/rfc1867_disabled_2.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
77
upload_max_filesize=1024
88
session.save_path=
99
session.name=PHPSESSID
10+
session.use_strict_mode=0
1011
session.use_cookies=1
1112
session.use_only_cookies=0
1213
session.upload_progress.enabled=1

ext/session/tests/rfc1867_inter.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
77
upload_max_filesize=1024
88
session.save_path=
99
session.name=PHPSESSID
10+
session.use_strict_mode=0
1011
session.use_cookies=1
1112
session.use_only_cookies=0
1213
session.upload_progress.enabled=1

ext/session/tests/rfc1867_no_name.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
77
upload_max_filesize=1024
88
session.save_path=
99
session.name=PHPSESSID
10+
session.use_strict_mode=0
1011
session.use_cookies=1
1112
session.use_only_cookies=0
1213
session.upload_progress.enabled=1

ext/session/tests/rfc1867_sid_cookie.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
77
upload_max_filesize=1024
88
session.save_path=
99
session.name=PHPSESSID
10+
session.use_strict_mode=0
1011
session.use_cookies=1
1112
session.use_only_cookies=0
1213
session.upload_progress.enabled=1

ext/session/tests/rfc1867_sid_get.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
77
upload_max_filesize=1024
88
session.save_path=
99
session.name=PHPSESSID
10+
session.use_strict_mode=0
1011
session.use_cookies=1
1112
session.use_only_cookies=0
1213
session.upload_progress.enabled=1

ext/session/tests/rfc1867_sid_get_2.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
77
upload_max_filesize=1024
88
session.save_path=
99
session.name=PHPSESSID
10+
session.use_strict_mode=0
1011
session.use_cookies=0
1112
session.use_only_cookies=0
1213
session.upload_progress.enabled=1

ext/session/tests/rfc1867_sid_only_cookie.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
77
upload_max_filesize=1024
88
session.save_path=
99
session.name=PHPSESSID
10+
session.use_strict_mode=0
1011
session.use_cookies=1
1112
session.use_only_cookies=1
1213
session.upload_progress.enabled=1

ext/session/tests/rfc1867_sid_post.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ comment=debug builds show some additional E_NOTICE errors
77
upload_max_filesize=1024
88
session.save_path=
99
session.name=PHPSESSID
10+
session.use_strict_mode=0
1011
session.use_cookies=1
1112
session.use_only_cookies=0
1213
session.upload_progress.enabled=1

ext/session/tests/session_id_basic.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ var_dump(session_id("test"));
2020
var_dump(session_id());
2121
var_dump(session_id("1234567890"));
2222
var_dump(session_id());
23+
// Turn off strice mode, since it does not allow uninitialized session ID
24+
ini_set('session.use_strict_mode',false);
2325
var_dump(session_start());
2426
var_dump(session_id());
2527
var_dump(session_destroy());

0 commit comments

Comments
 (0)