Skip to content

Commit 481e9b7

Browse files
committed
chore: modify error flow and messages of warnings
1 parent 070407c commit 481e9b7

5 files changed

Lines changed: 17 additions & 17 deletions

File tree

ext/session/session.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -709,19 +709,19 @@ static PHP_INI_MH(OnUpdateCookieLifetime)
709709
zend_long lval = 0;
710710
int oflow = 0;
711711
uint8_t type = is_numeric_string_ex(ZSTR_VAL(new_value), ZSTR_LEN(new_value), &lval, NULL, false, &oflow, NULL);
712-
if (type == 0) {
713-
php_error_docref(NULL, E_WARNING, "Invalid value for CookieLifetime");
714-
return FAILURE;
715-
} else if (type == IS_DOUBLE && oflow == 0) {
716-
php_error_docref(NULL, E_WARNING, "CookieLifetime must be an integer");
712+
if (UNEXPECTED(type != IS_LONG)) {
713+
if (oflow != 0) {
714+
php_error_docref(NULL, E_WARNING, "session.cookie_lifetime must be between 0 and " ZEND_LONG_FMT, maxcookie);
715+
} else {
716+
php_error_docref(NULL, E_WARNING, "session.cookie_lifetime must be an integer");
717+
}
717718
return FAILURE;
718719
}
719-
zend_long v = lval;
720-
if (oflow < 0 || v < 0) {
721-
php_error_docref(NULL, E_WARNING, "CookieLifetime cannot be negative");
720+
if (lval < 0) {
721+
php_error_docref(NULL, E_WARNING, "session.cookie_lifetime must be between 0 and " ZEND_LONG_FMT, maxcookie);
722722
return FAILURE;
723-
} else if (oflow > 0 || v > maxcookie) {
724-
php_error_docref(NULL, E_WARNING, "CookieLifetime value too large, value was set to the maximum of " ZEND_LONG_FMT, maxcookie);
723+
} else if (lval > maxcookie) {
724+
php_error_docref(NULL, E_WARNING, "session.cookie_lifetime must be between 0 and " ZEND_LONG_FMT ", value clamped to maximum", maxcookie);
725725
zend_long *p = ZEND_INI_GET_ADDR();
726726
*p = maxcookie;
727727
entry->value = zend_long_to_str(maxcookie);

ext/session/tests/gh16290.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ echo "DONE";
1212
ob_end_flush();
1313
?>
1414
--EXPECTF--
15-
Warning: session_set_cookie_params(): CookieLifetime value too large, value was set to the maximum of %d in %s on line %d
15+
Warning: session_set_cookie_params(): session.cookie_lifetime must be between 0 and %d, value clamped to maximum in %s on line %d
1616
DONE

ext/session/tests/session_cookie_lifetime_invalid.phpt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ var_dump(ini_get("session.cookie_lifetime"));
3030
ob_end_flush();
3131
?>
3232
--EXPECTF--
33-
Warning: ini_set(): CookieLifetime must be an integer in %s on line %d
33+
Warning: ini_set(): session.cookie_lifetime must be an integer in %s on line %d
3434
string(3) "100"
3535

36-
Warning: ini_set(): Invalid value for CookieLifetime in %s on line %d
36+
Warning: ini_set(): session.cookie_lifetime must be an integer in %s on line %d
3737
string(3) "100"
3838

39-
Warning: ini_set(): CookieLifetime cannot be negative in %s on line %d
39+
Warning: ini_set(): session.cookie_lifetime must be between 0 and %d in %s on line %d
4040
string(3) "100"
4141

42-
Warning: ini_set(): CookieLifetime cannot be negative in %s on line %d
42+
Warning: ini_set(): session.cookie_lifetime must be between 0 and %d in %s on line %d
4343
string(3) "100"

ext/session/tests/session_cookie_lifetime_overflow.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ ob_end_flush();
2828
--EXPECTF--
2929
string(3) "100"
3030

31-
Warning: ini_set(): CookieLifetime value too large, value was set to the maximum of %d in %s on line %d
31+
Warning: ini_set(): session.cookie_lifetime must be between 0 and %d, value clamped to maximum in %s on line %d
3232
bool(true)
3333
bool(true)
3434
string(3) "200"

ext/session/tests/session_set_cookie_params_variation8.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ bool(true)
2525
string(1) "0"
2626
string(1) "0"
2727

28-
Warning: session_set_cookie_params(): CookieLifetime cannot be negative in %s on line %d
28+
Warning: session_set_cookie_params(): session.cookie_lifetime must be between 0 and %d in %s on line %d
2929
bool(false)
3030
string(1) "0"
3131
Done

0 commit comments

Comments
 (0)