diff --git a/mrbgems/mruby-bigint/core/bigint.c b/mrbgems/mruby-bigint/core/bigint.c index e447e0cb0..11210bc19 100644 --- a/mrbgems/mruby-bigint/core/bigint.c +++ b/mrbgems/mruby-bigint/core/bigint.c @@ -1104,6 +1104,8 @@ mpz_mul(mpz_ctx_t *ctx, mpz_t *ww, mpz_t *u, mpz_t *v) mpz_realloc(ctx, ww, result_size); size_t scratch_size = karatsuba_scratch_size(u->sz, v->sz); + /* Add safety margin to account for rounding in recursive partitioning */ + scratch_size += 8; size_t pool_state = pool_save(ctx); mp_limb *scratch = NULL;