From 95454c448bdd540adc32e780f0b4ea7bfd80cb28 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Wed, 23 Dec 2015 18:16:52 +0100 Subject: [PATCH] Bug #71201 round() segfault on 64-bit builds --- ext/standard/math.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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); -- 2.40.0