From 3ff2757bf705082e40013796ef2bac1277499de8 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 7 Sep 2020 16:22:01 +0900 Subject: Fix `mrb_int_mul_overflow()` to check either operand being zero. --- include/mruby/numeric.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/mruby/numeric.h b/include/mruby/numeric.h index f88868796..7e70b9dee 100644 --- a/include/mruby/numeric.h +++ b/include/mruby/numeric.h @@ -136,15 +136,15 @@ mrb_int_mul_overflow(mrb_int multiplier, mrb_int multiplicand, mrb_int *product) if (multiplicand > 0) { if (multiplier > MRB_INT_MAX / multiplicand) return TRUE; } - else { + else if (multiplicand < 0) { if (multiplicand < MRB_INT_MAX / multiplier) return TRUE; } } - else { + else if (multiplier < 0) { if (multiplicand > 0) { if (multiplier < MRB_INT_MAX / multiplicand) return TRUE; } - else { + else if (multiplicand < 0) { if (multiplier != 0 && multiplicand < MRB_INT_MAX / multiplier) return TRUE; } } -- cgit v1.2.3