summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mrbgems/mruby-rational/src/rational.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/mrbgems/mruby-rational/src/rational.c b/mrbgems/mruby-rational/src/rational.c
index c5df52a08..0d317cc0f 100644
--- a/mrbgems/mruby-rational/src/rational.c
+++ b/mrbgems/mruby-rational/src/rational.c
@@ -183,6 +183,7 @@ static void
float_decode_internal(mrb_state *mrb, mrb_float f, mrb_float *rf, int *n)
{
f = (mrb_float)frexp_rat(f, n);
+ if (isinf(f)) rat_overflow(mrb);
f = (mrb_float)ldexp_rat(f, RAT_MANT_DIG);
*n -= RAT_MANT_DIG;
*rf = f;