summaryrefslogtreecommitdiff
path: root/bignum.c
diff options
context:
space:
mode:
Diffstat (limited to 'bignum.c')
-rw-r--r--bignum.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/bignum.c b/bignum.c
index 425676d32c..6a7a83c085 100644
--- a/bignum.c
+++ b/bignum.c
@@ -1606,6 +1606,11 @@ rb_big_pow(x, y)
if (yy > 0) {
VALUE z = x;
+ if (RBIGNUM(x)->len * SIZEOF_BDIGITS * yy > 1024*1024) {
+ rb_warn("in a**b, b may be too big");
+ d = (double)yy;
+ break;
+ }
for (;;) {
yy -= 1;
if (yy == 0) break;