From: Anatol Belski Date: Wed, 23 Dec 2015 17:16:52 +0000 (+0100) Subject: Bug #71201 round() segfault on 64-bit builds X-Git-Tag: php-7.0.3RC1~108^2~4 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=95454c448bdd540adc32e780f0b4ea7bfd80cb28;p=php Bug #71201 round() segfault on 64-bit builds --- diff --git a/ext/standard/math.c b/ext/standard/math.c index 6059f3dd9b..6203626a55 100644 --- a/ext/standard/math.c +++ b/ext/standard/math.c @@ -390,7 +390,15 @@ PHP_FUNCTION(round) } if (ZEND_NUM_ARGS() >= 2) { - places = (int) precision; +#if SIZEOF_LONG > SIZEOF_INT + if (precision >= 0) { + places = precision > INT_MAX ? INT_MAX : (int)precision; + } else { + places = precision <= INT_MIN ? INT_MIN+1 : (int)precision; + } +#else + places = precision; +#endif } convert_scalar_to_number_ex(value);