From 3419426dbf8086a933097175970d4fa585b1d1ef Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 24 Dec 2020 23:16:49 +0900 Subject: Avoid division by zero in `rational_to_f()`. --- mrbgems/mruby-rational/src/rational.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mrbgems/mruby-rational/src/rational.c b/mrbgems/mruby-rational/src/rational.c index 6d94cb21f..1feb2530e 100644 --- a/mrbgems/mruby-rational/src/rational.c +++ b/mrbgems/mruby-rational/src/rational.c @@ -192,7 +192,14 @@ static mrb_value rational_to_f(mrb_state *mrb, mrb_value self) { struct mrb_rational *p = rational_ptr(mrb, self); - mrb_float f = (mrb_float)p->numerator / (mrb_float)p->denominator; + mrb_float f; + + if (p->denominator == 0.0) { + f = INFINITY; + } + else { + f = (mrb_float)p->numerator / (mrb_float)p->denominator; + } return mrb_float_value(mrb, f); } -- cgit v1.2.3