Fix spurious bntest failures.
[openssl.git] / test / bntest.c
index 521858ae168029dfde79dfe6648a1a84beee1daa..430d2a02b81cbf7fae917f361d6eb8456eddf462 100644 (file)
@@ -526,9 +526,9 @@ int test_div_word(BIO *bp)
         do {
             BN_bntest_rand(a, 512, -1, 0);
             BN_bntest_rand(b, BN_BITS2, -1, 0);
-            s = b->d[0];
-        } while (!s);
+        } while (BN_is_zero(b));
 
+        s = b->d[0];
         BN_copy(b, a);
         r = BN_div_word(b, s);
 
@@ -761,14 +761,10 @@ int test_sqr(BIO *bp, BN_CTX *ctx)
     }
     ret = 1;
  err:
-    if (a != NULL)
-        BN_free(a);
-    if (c != NULL)
-        BN_free(c);
-    if (d != NULL)
-        BN_free(d);
-    if (e != NULL)
-        BN_free(e);
+    BN_free(a);
+    BN_free(c);
+    BN_free(d);
+    BN_free(e);
     return ret;
 }
 
@@ -1047,7 +1043,6 @@ int test_mod_exp_mont_consttime(BIO *bp, BN_CTX *ctx)
 int test_mod_exp_mont5(BIO *bp, BN_CTX *ctx)
 {
     BIGNUM *a, *p, *m, *d, *e;
-
     BN_MONT_CTX *mont;
 
     a = BN_new();
@@ -1055,7 +1050,6 @@ int test_mod_exp_mont5(BIO *bp, BN_CTX *ctx)
     m = BN_new();
     d = BN_new();
     e = BN_new();
-
     mont = BN_MONT_CTX_new();
 
     BN_bntest_rand(m, 1024, 0, 1); /* must be odd for montgomery */
@@ -1104,6 +1098,7 @@ int test_mod_exp_mont5(BIO *bp, BN_CTX *ctx)
         fprintf(stderr, "Modular exponentiation test failed!\n");
         return 0;
     }
+    BN_MONT_CTX_free(mont);
     BN_free(a);
     BN_free(p);
     BN_free(m);
@@ -1669,14 +1664,10 @@ int test_kron(BIO *bp, BN_CTX *ctx)
     fflush(stderr);
     ret = 1;
  err:
-    if (a != NULL)
-        BN_free(a);
-    if (b != NULL)
-        BN_free(b);
-    if (r != NULL)
-        BN_free(r);
-    if (t != NULL)
-        BN_free(t);
+    BN_free(a);
+    BN_free(b);
+    BN_free(r);
+    BN_free(t);
     return ret;
 }
 
@@ -1764,12 +1755,9 @@ int test_sqrt(BIO *bp, BN_CTX *ctx)
     }
     ret = 1;
  err:
-    if (a != NULL)
-        BN_free(a);
-    if (p != NULL)
-        BN_free(p);
-    if (r != NULL)
-        BN_free(r);
+    BN_free(a);
+    BN_free(p);
+    BN_free(r);
     return ret;
 }
 
@@ -1810,8 +1798,8 @@ int test_probable_prime_coprime(BIO *bp, BN_CTX *ctx)
 
         for (j = 0; j < 5; j++) {
             if (BN_mod_word(r, primes[j]) == 0) {
-                BIO_printf(bp, "Number generated is not coprime to %ld:\n",
-                           primes[j]);
+                BIO_printf(bp, "Number generated is not coprime to "
+                          BN_DEC_FMT1 ":\n", primes[j]);
                 BN_print_fp(stdout, r);
                 BIO_printf(bp, "\n");
                 goto err;