Fix some issues raise by coverity in the tests.
authorPauli <paul.dale@oracle.com>
Wed, 5 Jul 2017 23:10:28 +0000 (09:10 +1000)
committerPauli <paul.dale@oracle.com>
Thu, 13 Jul 2017 21:31:29 +0000 (07:31 +1000)
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3846)

test/bntest.c
test/danetest.c
test/evp_test.c
test/exptest.c
test/pbelutest.c

index 00bdf3f..59148b0 100644 (file)
@@ -1367,9 +1367,9 @@ static int file_modexp(STANZA *s)
         "0000000000000000000000000000000000000000000000000000000000000000"
         "0000000000000000000000000000000000000000000000000000000000000000"
         "0000000000000000000000000000000000000000000000000000000001");
-    BN_mod_exp(d, a, b, c, ctx);
-    BN_mul(e, a, a, ctx);
-    if (!TEST_BN_eq(d, e))
+    if (!TEST_true(BN_mod_exp(d, a, b, c, ctx))
+        || !TEST_true(BN_mul(e, a, a, ctx))
+        || !TEST_BN_eq(d, e))
         goto err;
 
     st = 1;
index 89d6fb8..a0fd0ce 100644 (file)
@@ -133,6 +133,8 @@ static STACK_OF(X509) *load_chain(BIO *fp, int nelem)
         OPENSSL_free(name);
         OPENSSL_free(header);
         OPENSSL_free(data);
+        name = header = NULL;
+        data = NULL;
     }
 
     if (count == nelem) {
index 36e29c4..700923b 100644 (file)
@@ -1023,8 +1023,11 @@ static int pkey_test_init(EVP_TEST *t, const char *name,
         return 0;
     }
     kdata->keyop = keyop;
-    if (!TEST_ptr(kdata->ctx = EVP_PKEY_CTX_new(pkey, NULL)))
+    if (!TEST_ptr(kdata->ctx = EVP_PKEY_CTX_new(pkey, NULL))) {
+        EVP_PKEY_free(pkey);
+        OPENSSL_free(kdata);
         return 0;
+    }
     if (keyopinit(kdata->ctx) <= 0)
         t->err = "KEYOP_INIT_ERROR";
     t->data = kdata;
@@ -1624,10 +1627,15 @@ static int kdf_test_init(EVP_TEST *t, const char *name)
     if (!TEST_ptr(kdata = OPENSSL_zalloc(sizeof(*kdata))))
         return 0;
     kdata->ctx = EVP_PKEY_CTX_new_id(OBJ_sn2nid(name), NULL);
-    if (kdata->ctx == NULL)
+    if (kdata->ctx == NULL) {
+        OPENSSL_free(kdata);
         return 0;
-    if (EVP_PKEY_derive_init(kdata->ctx) <= 0)
+    }
+    if (EVP_PKEY_derive_init(kdata->ctx) <= 0) {
+        EVP_PKEY_CTX_free(kdata->ctx);
+        OPENSSL_free(kdata);
         return 0;
+    }
     t->data = kdata;
     return 1;
 }
index e6f5213..9de922e 100644 (file)
@@ -156,10 +156,9 @@ static int test_mod_exp(int round)
     c = (c % BN_BITS) - BN_BITS2;
     BN_rand(m, NUM_BITS + c, BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ODD);
 
-    BN_mod(a, a, m, ctx);
-    BN_mod(b, b, m, ctx);
-
-    if (!TEST_true(BN_mod_exp_mont(r_mont, a, b, m, ctx, NULL))
+    if (!TEST_true(BN_mod(a, a, m, ctx))
+        || !TEST_true(BN_mod(b, b, m, ctx))
+        || !TEST_true(BN_mod_exp_mont(r_mont, a, b, m, ctx, NULL))
         || !TEST_true(BN_mod_exp_recp(r_recp, a, b, m, ctx))
         || !TEST_true(BN_mod_exp_simple(r_simple, a, b, m, ctx))
         || !TEST_true(BN_mod_exp_mont_consttime(r_mont_const, a, b, m, ctx, NULL)))
index c6ce586..84cb263 100644 (file)
 
 static int test_pbelu(void)
 {
-    int i, failed = 0, ok;
+    int i, failed = 0;
     int pbe_type, pbe_nid, last_type = -1, last_nid = -1;
 
     for (i = 0; EVP_PBE_get(&pbe_type, &pbe_nid, i) != 0; i++) {
         if (!TEST_true(EVP_PBE_find(pbe_type, pbe_nid, NULL, NULL, 0))) {
-            TEST_info("i=%d, pbe_type=%d, pbe_nid=%d", i, pbe_type, pbe_nid);
+            TEST_note("i=%d, pbe_type=%d, pbe_nid=%d", i, pbe_type, pbe_nid);
             failed = 1;
             break;
         }
@@ -33,20 +33,14 @@ static int test_pbelu(void)
 
     /* Error: print out whole table */
     for (i = 0; EVP_PBE_get(&pbe_type, &pbe_nid, i) != 0; i++) {
-        if (pbe_type > last_type)
-            ok = 0;
-        else if (pbe_type < last_type || pbe_nid < last_nid)
-            ok = 1;
-        else
-            ok = 0;
-        if (!ok)
-            failed = 1;
-        TEST_info("PBE type=%d %d (%s): %s\n", pbe_type, pbe_nid,
-                OBJ_nid2sn(pbe_nid), ok ? "ERROR" : "OK");
+        failed = pbe_type < last_type
+                 || (pbe_type == last_type && pbe_nid < last_nid);
+        TEST_note("PBE type=%d %d (%s): %s\n", pbe_type, pbe_nid,
+                  OBJ_nid2sn(pbe_nid), failed ? "ERROR" : "OK");
         last_type = pbe_type;
         last_nid = pbe_nid;
     }
-    return failed ? 0 : 1;
+    return 0;
 }
 
 void register_tests(void)