Skip to content

Commit

Permalink
Merge branch 'PHP-8.3'
Browse files Browse the repository at this point in the history
* PHP-8.3:
  random: Fix unknown `mt_srand()` compatibility for unknown modes (#13544)
  Merge branch 'PHP-8.2' into PHP-8.3
  Removed `REPORT_EXIT_STATUS=no` in libmysql tests
  Revert "Fix GH-13519: PGSQL_CONNECT_FORCE_RENEW with persistent connections." (#13546)
  • Loading branch information
TimWolla committed Feb 29, 2024
2 parents 47a199c + e6c0b09 commit 54079ba
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 4 deletions.
10 changes: 6 additions & 4 deletions ext/random/random.c
Expand Up @@ -480,11 +480,13 @@ PHP_FUNCTION(mt_srand)
Z_PARAM_LONG(mode)
ZEND_PARSE_PARAMETERS_END();

state->mode = mode;

/* Anything that is not MT_RAND_MT19937 was interpreted as MT_RAND_PHP. */
if (state->mode != MT_RAND_MT19937) {
switch (mode) {
case MT_RAND_PHP:
state->mode = MT_RAND_PHP;
zend_error(E_DEPRECATED, "The MT_RAND_PHP variant of Mt19937 is deprecated");
break;
default:
state->mode = MT_RAND_MT19937;
}

if (seed_is_null) {
Expand Down
24 changes: 24 additions & 0 deletions ext/random/tests/01_functions/mt_srand_unknown_mode.phpt
@@ -0,0 +1,24 @@
--TEST--
mt_srand(): Test unknown modes
--FILE--
<?php
// MT_RAND_MT19937
mt_srand(1, 0);
var_dump(mt_rand());
// MT_RAND_PHP
mt_srand(1, 1);
var_dump(mt_rand());
// Unknown
mt_srand(1, 2);
var_dump(mt_rand());
// Equivalent to 0 when cast as unsigned 8-bit integer
mt_srand(1, 256);
var_dump(mt_rand());
?>
--EXPECTF--
int(895547922)

Deprecated: The MT_RAND_PHP variant of Mt19937 is deprecated in %s on line %d
int(1244335972)
int(895547922)
int(895547922)

0 comments on commit 54079ba

Please sign in to comment.