Fix mrb_int_mul_overflow() to check either operand being zero.

This commit is contained in:
Yukihiro "Matz" Matsumoto
2020-09-07 16:22:01 +09:00
parent 4dcc1819c9
commit 3ff2757bf7
2 changed files with 5 additions and 5 deletions
+3 -3
View File
@@ -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;
}
}