Merge branch 'PHP-8.2' into PHP-8.3

* PHP-8.2:
  Fix GH-16385: Unexpected null returned by session_set_cookie_params
This commit is contained in:
Niels Dossche 2024-10-12 13:09:06 +02:00
commit a1f7ce5617
No known key found for this signature in database
GPG key ID: B8A8AD166DF0E2E5
3 changed files with 22 additions and 4 deletions

4
NEWS
View file

@ -28,6 +28,10 @@ PHP NEWS
- PHPDBG: - PHPDBG:
. Fixed bug GH-16174 (Empty string is an invalid expression for ev). (cmb) . Fixed bug GH-16174 (Empty string is an invalid expression for ev). (cmb)
- Session:
. Fixed bug GH-16385 (Unexpected null returned by session_set_cookie_params).
(nielsdos)
- XMLReader: - XMLReader:
. Fixed bug GH-16292 (Segmentation fault in ext/xmlreader/php_xmlreader.c). . Fixed bug GH-16292 (Segmentation fault in ext/xmlreader/php_xmlreader.c).
(nielsdos) (nielsdos)

View file

@ -1690,10 +1690,6 @@ PHP_FUNCTION(session_set_cookie_params)
zend_result result; zend_result result;
int found = 0; int found = 0;
if (!PS(use_cookies)) {
return;
}
ZEND_PARSE_PARAMETERS_START(1, 5) ZEND_PARSE_PARAMETERS_START(1, 5)
Z_PARAM_ARRAY_HT_OR_LONG(options_ht, lifetime_long) Z_PARAM_ARRAY_HT_OR_LONG(options_ht, lifetime_long)
Z_PARAM_OPTIONAL Z_PARAM_OPTIONAL
@ -1703,6 +1699,11 @@ PHP_FUNCTION(session_set_cookie_params)
Z_PARAM_BOOL_OR_NULL(httponly, httponly_null) Z_PARAM_BOOL_OR_NULL(httponly, httponly_null)
ZEND_PARSE_PARAMETERS_END(); ZEND_PARSE_PARAMETERS_END();
if (!PS(use_cookies)) {
php_error_docref(NULL, E_WARNING, "Session cookies cannot be used when session.use_cookies is disabled");
RETURN_FALSE;
}
if (PS(session_status) == php_session_active) { if (PS(session_status) == php_session_active) {
php_error_docref(NULL, E_WARNING, "Session cookie parameters cannot be changed when a session is active"); php_error_docref(NULL, E_WARNING, "Session cookie parameters cannot be changed when a session is active");
RETURN_FALSE; RETURN_FALSE;

View file

@ -0,0 +1,13 @@
--TEST--
GH-16385 (Unexpected null returned by session_set_cookie_params)
--EXTENSIONS--
session
--INI--
session.use_cookies=0
--FILE--
<?php
var_dump(session_set_cookie_params(3600, "/foo"));
?>
--EXPECTF--
Warning: session_set_cookie_params(): Session cookies cannot be used when session.use_cookies is disabled in %s on line %d
bool(false)