summaryrefslogtreecommitdiff
path: root/ext/gmp/gmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/gmp/gmp.c')
-rw-r--r--ext/gmp/gmp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/gmp/gmp.c b/ext/gmp/gmp.c
index 406862ebaa..075f67499f 100644
--- a/ext/gmp/gmp.c
+++ b/ext/gmp/gmp.c
@@ -817,12 +817,12 @@ ZEND_FUNCTION(gmp_strval)
break;
}
- if (base < 2 || base > 36) {
+ if ((base < 2 && base > -2) || base > 36 || base < -36) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad base for conversion: %d", base);
RETURN_FALSE;
}
- num_len = mpz_sizeinbase(*gmpnum, base);
+ num_len = mpz_sizeinbase(*gmpnum, abs(base));
out_string = emalloc(num_len+2);
if (mpz_sgn(*gmpnum) < 0) {
num_len++;