mirror of
https://github.com/php/php-src.git
synced 2024-11-24 02:15:04 +08:00
Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1: NEWS Fixed bug #75514 mt_rand returns value outside [$min,$max]+ on 32-bit
This commit is contained in:
commit
9e3bd1b288
@ -294,7 +294,7 @@ PHPAPI zend_long php_mt_rand_range(zend_long min, zend_long max)
|
||||
* rand() allows min > max, mt_rand does not */
|
||||
PHPAPI zend_long php_mt_rand_common(zend_long min, zend_long max)
|
||||
{
|
||||
zend_long n;
|
||||
uint32_t n;
|
||||
|
||||
if (BG(mt_rand_mode) == MT_RAND_MT19937) {
|
||||
return php_mt_rand_range(min, max);
|
||||
@ -302,7 +302,7 @@ PHPAPI zend_long php_mt_rand_common(zend_long min, zend_long max)
|
||||
|
||||
/* Legacy mode deliberately not inside php_mt_rand_range()
|
||||
* to prevent other functions being affected */
|
||||
n = (zend_long)php_mt_rand() >> 1;
|
||||
n = php_mt_rand() >> 1;
|
||||
RAND_RANGE_BADSCALING(n, min, max, PHP_MT_RAND_MAX);
|
||||
|
||||
return n;
|
||||
|
12
ext/standard/tests/math/bug75514.phpt
Normal file
12
ext/standard/tests/math/bug75514.phpt
Normal file
@ -0,0 +1,12 @@
|
||||
--TEST--
|
||||
Bug #75514 mt_rand returns value outside [$min,$max]
|
||||
--FILE--
|
||||
<?php
|
||||
mt_srand(0, MT_RAND_PHP);
|
||||
var_dump(mt_rand(0,999999999), mt_rand(0,999));
|
||||
?>
|
||||
===Done===
|
||||
--EXPECT--
|
||||
int(448865905)
|
||||
int(592)
|
||||
===Done===
|
Loading…
Reference in New Issue
Block a user