From 0df460892cc3035782226768e41299156ec9a37d Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 9 Nov 2020 11:35:54 +0900 Subject: Add range check before casting float to integer. --- src/numeric.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/numeric.c b/src/numeric.c index fcabc6d60..2c16b8a31 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -853,6 +853,8 @@ flo_round(mrb_state *mrb, mrb_value num) if (!isfinite(number)) return num; return mrb_float_value(mrb, number); } + if (!FIXABLE_FLOAT(number)) + return mrb_float_value(mrb, number); return mrb_int_value(mrb, (mrb_int)number); } -- cgit v1.2.3