diff --git a/crypto/bn/bn_mont.c b/crypto/bn/bn_mont.c index e5fbcd619..6a54e8f4c 100644 --- a/crypto/bn/bn_mont.c +++ b/crypto/bn/bn_mont.c @@ -90,7 +90,7 @@ int BN_mod_mul_montgomery(BIGNUM *r, BIGNUM *a, BIGNUM *b, bn_wexpand(tmp2,a->top*4); bn_sqr_recursive(tmp->d,a->d,a->top,tmp2->d); tmp->top=a->top*2; - if (tmp->d[tmp->top-1] == 0) + if (tmp->top > 0 && tmp->d[tmp->top-1] == 0) tmp->top--; #else if (!BN_sqr(tmp,a,ctx)) goto err;