mruby-bigint (mrb_bint_to_s): add check for MRB_32BIT and MRB_INT64

This commit is contained in:
Yukihiro "Matz" Matsumoto
2025-04-10 23:00:30 +09:00
parent 29964b3ba7
commit 82522a2e71
+1 -1
View File
@@ -1861,7 +1861,7 @@ mrb_bint_to_s(mrb_state *mrb, mrb_value x, mrb_int base)
return mrb_str_new_lit(mrb, "0");
}
size_t len = mpz_sizeinbase(&a, (int)base);
if (MRB_INT_MAX-2 < len) {
if (sizeof(size_t) >= sizeof(mrb_int) && MRB_INT_MAX-2 < len) {
mrb_raise(mrb, E_ARGUMENT_ERROR, "too long string from Integer");
}
mrb_value str = mrb_str_new(mrb, NULL, len+2);