mirror of
https://github.com/php/php-src.git
synced 2024-09-23 10:57:26 +00:00
Merge branch 'PHP-5.4' into PHP-5.5
This commit is contained in:
commit
c7b58e4967
@ -4071,17 +4071,7 @@ PHP_FUNCTION(array_sum)
|
||||
entry_n = **entry;
|
||||
zval_copy_ctor(&entry_n);
|
||||
convert_scalar_to_number(&entry_n TSRMLS_CC);
|
||||
|
||||
if (Z_TYPE(entry_n) == IS_LONG && Z_TYPE_P(return_value) == IS_LONG) {
|
||||
dval = (double)Z_LVAL_P(return_value) + (double)Z_LVAL(entry_n);
|
||||
if ( (double)LONG_MIN <= dval && dval <= (double)LONG_MAX ) {
|
||||
Z_LVAL_P(return_value) += Z_LVAL(entry_n);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
convert_to_double(return_value);
|
||||
convert_to_double(&entry_n);
|
||||
Z_DVAL_P(return_value) += Z_DVAL(entry_n);
|
||||
fast_add_function(return_value, return_value, &entry_n TSRMLS_CC);
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
10
ext/standard/tests/array/bug65304.phpt
Normal file
10
ext/standard/tests/array/bug65304.phpt
Normal file
@ -0,0 +1,10 @@
|
||||
--TEST--
|
||||
Bug #65304 (Use of max int in array_sum)
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump(array_sum(array(PHP_INT_MAX, 1)));
|
||||
var_dump(PHP_INT_MAX + 1);
|
||||
?>
|
||||
--EXPECTF--
|
||||
float(%s)
|
||||
float(%s)
|
Loading…
Reference in New Issue
Block a user