summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdin Kadribasic <edink@php.net>2002-06-18 00:04:33 +0000
committerEdin Kadribasic <edink@php.net>2002-06-18 00:04:33 +0000
commitfb6bcda13b7a4202c7c2419dc28d8042ed82ebe6 (patch)
tree4664e774d88aab355d1f350c40db6c78aed7e92c
parentdbc195cdef4eefd60c4f0c527fb1c174099cae4e (diff)
downloadphp-git-fb6bcda13b7a4202c7c2419dc28d8042ed82ebe6.tar.gz
Check for +/- infinity in base_convert (bug #14807).
-rw-r--r--ext/standard/math.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/ext/standard/math.c b/ext/standard/math.c
index 4ca710d235..75eee0dac1 100644
--- a/ext/standard/math.c
+++ b/ext/standard/math.c
@@ -770,6 +770,13 @@ _php_math_zvaltobase(zval *arg, int base)
char *ptr, *end;
char buf[(sizeof(double) << 3) + 1];
+ /* Don't try to convert +/- infinity */
+ if (fvalue == HUGE_VAL || fvalue == -HUGE_VAL) {
+ php_error(E_WARNING, "Number too large in %s() call",
+ get_active_function_name(TSRMLS_C));
+ return empty_string;
+ }
+
end = ptr = buf + sizeof(buf) - 1;
*ptr = '\0';