Changeset 34924
- Timestamp:
- 10/08/2015 12:16:07 AM (9 years ago)
- Location:
- trunk/src/wp-includes
- Files:
-
- 1 deleted
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/compat.php
r34922 r34924 333 333 } 334 334 } 335 336 // random_int was introduced in PHP 7.0337 if ( ! function_exists( 'random_int' ) ) {338 require ABSPATH . WPINC . '/random_compat/random.php';339 } -
trunk/src/wp-includes/pluggable.php
r34922 r34924 2133 2133 * 2134 2134 * @since 2.6.2 2135 * @since 4.4 Uses PHP7 random_int() or the random_compat library if avaialble.2136 2135 * 2137 2136 * @global string $rnd_value 2138 2137 * @staticvar string $seed 2139 * @staticvar bool $external_rand_source_available2140 2138 * 2141 2139 * @param int $min Lower limit for the generated number … … 2145 2143 function wp_rand( $min = 0, $max = 0 ) { 2146 2144 global $rnd_value; 2147 2148 // Some misconfigured 32bit environments (Entropy PHP, for example) truncate integers larger than PHP_INT_MAX to PHP_INT_MAX rather than overflowing them to floats.2149 $max_random_number = 3000000000 === 2147483647 ? (float) "4294967295" : 4294967295; // 4294967295 = 0xffffffff2150 2151 // We only handle Ints, floats are truncated to their integer value.2152 $min = (int) $min;2153 $max = (int) $max;2154 2155 // Use PHP's CSPRNG, or a compatible method2156 static $use_random_int_functionality = true;2157 if ( $use_random_int_functionality ) {2158 try {2159 $_max = ( 0 != $max ) ? $max : $max_random_number;2160 // wp_rand() can accept arguements in either order, PHP cannot.2161 $_max = max( $min, $_max );2162 $_min = min( $min, $_max );2163 $val = random_int( $_min, $_max );2164 if ( false !== $val ) {2165 return absint( $val );2166 } else {2167 $use_random_int_functionality = false;2168 }2169 } catch ( Throwable $t ) {2170 $use_random_int_functionality = false;2171 } catch ( Exception $e ) {2172 $use_random_int_functionality = false;2173 }2174 }2175 2145 2176 2146 // Reset $rnd_value after 14 uses … … 2197 2167 2198 2168 $value = abs(hexdec($value)); 2169 2170 // Some misconfigured 32bit environments (Entropy PHP, for example) truncate integers larger than PHP_INT_MAX to PHP_INT_MAX rather than overflowing them to floats. 2171 $max_random_number = 3000000000 === 2147483647 ? (float) "4294967295" : 4294967295; // 4294967295 = 0xffffffff 2199 2172 2200 2173 // Reduce the value to be within the min - max range
Note: See TracChangeset
for help on using the changeset viewer.