bigint.c (udiv): avoid out of bound access in division.

This commit is contained in:
Yukihiro "Matz" Matsumoto
2022-07-25 14:10:31 +09:00
parent 657263446e
commit 7d5475916c
+1 -1
View File
@@ -441,7 +441,7 @@ udiv(mrb_state *mrb, mpz_t *qq, mpz_t *rr, mpz_t *xx, mpz_t *yy)
size_t xd = digits(&x);
mpz_realloc(mrb, &q, xd);
mp_limb2 z = y.p[yd-1];
for (size_t j=(xd-yd);; j--) {
for (size_t j=xd-yd-1;; j--) {
mp_limb2 qhat = (((mp_limb2)x.p[j+yd] << DIG_SIZE) + x.p[j+yd-1]) / z;
mp_limb2s b=0;
if (qhat) {