PR: 2540
authorDr. Stephen Henson <steve@openssl.org>
Wed, 22 Jun 2011 15:24:05 +0000 (15:24 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Wed, 22 Jun 2011 15:24:05 +0000 (15:24 +0000)
Submitted by: emmanuel.azencot@bull.net
Reviewed by: steve

Prevent infinite loop in BN_GF2m_mod_inv().

crypto/bn/bn_gf2m.c

index 19a101bccdaf429f8f0c581801e67211bb35f368..d0e03f87daea4bbcc6d343ac9a3faff9911699da 100644 (file)
@@ -548,6 +548,7 @@ int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx)
                {
                while (!BN_is_odd(u))
                        {
+                       if (BN_is_zero(u)) goto err;
                        if (!BN_rshift1(u, u)) goto err;
                        if (BN_is_odd(b))
                                {