summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/gmp/gmp.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/ext/gmp/gmp.c b/ext/gmp/gmp.c
index 43edc53d9f..f71ab753ef 100644
--- a/ext/gmp/gmp.c
+++ b/ext/gmp/gmp.c
@@ -1484,6 +1484,11 @@ ZEND_FUNCTION(gmp_setbit)
break;
}
+ if (index < 0) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Index must be greater than or equal to zero");
+ return;
+ }
+
if (set) {
mpz_setbit(*gmpnum_a, index);
} else {
@@ -1508,6 +1513,11 @@ ZEND_FUNCTION(gmp_clrbit)
convert_to_long_ex(ind_arg);
index = Z_LVAL_PP(ind_arg);
+
+ if (index < 0) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Index must be greater than or equal to zero");
+ return;
+ }
mpz_clrbit(*gmpnum_a, index);
}