From b9eb063f3c1acb3586958e086c34466b1bf260f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20D=C3=BCsterhus?= Date: Thu, 11 Aug 2022 22:03:57 +0200 Subject: [PATCH 1/2] Update expires format for session cookie see GH-9200 see 15e3fcb468d7ef6faddc8f99f8f708fe8c2d8492 --- NEWS | 3 +++ ext/session/session.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index cf376832ae405..c0828bbd75050 100644 --- a/NEWS +++ b/NEWS @@ -23,6 +23,9 @@ PHP NEWS . Added extension specific Exceptions/Errors (RandomException, RandomError, BrokenRandomEngineError). (timwolla) +- Session: + . Fixed GH-9200 (setcookie has an obsolete expires date format). (timwolla) + - Standard: . Fixed bug #65489 (glob() basedir check is inconsistent). (Jakub Zelenka) . Fixed GH-9200 (setcookie has an obsolete expires date format). (Derick) diff --git a/ext/session/session.c b/ext/session/session.c index 505347186e9b8..3a807fd0d9970 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -1345,7 +1345,7 @@ static zend_result php_session_send_cookie(void) /* {{{ */ t = tv.tv_sec + PS(cookie_lifetime); if (t > 0) { - date_fmt = php_format_date("D, d-M-Y H:i:s T", sizeof("D, d-M-Y H:i:s T")-1, t, 0); + date_fmt = php_format_date("D, d M Y H:i:s \\G\\M\\T", sizeof("D, d M Y H:i:s \\G\\M\\T")-1, t, 0); smart_str_appends(&ncookie, COOKIE_EXPIRES); smart_str_appendl(&ncookie, ZSTR_VAL(date_fmt), ZSTR_LEN(date_fmt)); zend_string_release_ex(date_fmt, 0); From f61f9b818e782f7a6a44d8dde18300bad84dd2e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20D=C3=BCsterhus?= Date: Fri, 12 Aug 2022 18:33:29 +0200 Subject: [PATCH 2/2] Add ext/session/tests/gh9200.phpt --- ext/session/tests/gh9200.phpt | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 ext/session/tests/gh9200.phpt diff --git a/ext/session/tests/gh9200.phpt b/ext/session/tests/gh9200.phpt new file mode 100644 index 0000000000000..fd6e28ab8b908 --- /dev/null +++ b/ext/session/tests/gh9200.phpt @@ -0,0 +1,23 @@ +--TEST-- +GH-9200: setcookie has an obsolete expires date format +--INI-- +session.cookie_lifetime=3600 +--EXTENSIONS-- +session +--CGI-- +--FILE-- + +--EXPECT-- +Success