From fc1f7c4bf0a7ec762e730f7ee183cb0d3e0bf9da Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 6 Sep 2021 10:21:42 +0900 Subject: numeric.c: shortcut overflowing operation when `ndigit` is too small. --- src/numeric.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/numeric.c b/src/numeric.c index 1a006b7e3..fd9f5ce2c 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -907,6 +907,7 @@ flo_round(mrb_state *mrb, mrb_value num) mrb_check_num_exact(mrb, number); f = 1.0; + if (ndigits < -DBL_DIG-2) return mrb_fixnum_value(0); i = ndigits >= 0 ? ndigits : -ndigits; if (ndigits > DBL_DIG+2) return num; while (--i >= 0) -- cgit v1.2.3