[openssl-commits] [openssl] master update

matthias.st.pierre at ncp-e.com matthias.st.pierre at ncp-e.com
Tue Apr 17 15:25:22 UTC 2018


The branch master has been updated
       via  43687d685ffd71fc1cf0ea1079f6d4958dff5026 (commit)
      from  826e154481e93413a79c37cb1bf4da6175a05875 (commit)


- Log -----------------------------------------------------------------
commit 43687d685ffd71fc1cf0ea1079f6d4958dff5026
Author: Dr. Matthias St. Pierre <Matthias.St.Pierre at ncp-e.com>
Date:   Tue Apr 17 08:07:11 2018 +0200

    DRBG: fix coverity issues
    
    - drbg_lib.c: Silence coverity warning: the comment preceding the
      RAND_DRBG_instantiate() call explicitely states that the error
      is ignored and explains the reason why.
    
    - drbgtest: Add checks for the return values of RAND_bytes() and
      RAND_priv_bytes() to run_multi_thread_test().
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/5976)

-----------------------------------------------------------------------

Summary of changes:
 crypto/rand/drbg_lib.c |  8 ++++----
 test/drbgtest.c        | 16 +++++++++++++---
 2 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/crypto/rand/drbg_lib.c b/crypto/rand/drbg_lib.c
index cc59236..16ac03b 100644
--- a/crypto/rand/drbg_lib.c
+++ b/crypto/rand/drbg_lib.c
@@ -864,14 +864,14 @@ static RAND_DRBG *drbg_setup(RAND_DRBG *parent)
     drbg->reseed_counter = 1;
 
     /*
-     * Ignore instantiation error so support just-in-time instantiation.
+     * Ignore instantiation error to support just-in-time instantiation.
      *
      * The state of the drbg will be checked in RAND_DRBG_generate() and
      * an automatic recovery is attempted.
      */
-    RAND_DRBG_instantiate(drbg,
-                          (const unsigned char *) ossl_pers_string,
-                          sizeof(ossl_pers_string) - 1);
+    (void)RAND_DRBG_instantiate(drbg,
+                                (const unsigned char *) ossl_pers_string,
+                                sizeof(ossl_pers_string) - 1);
     return drbg;
 
 err:
diff --git a/test/drbgtest.c b/test/drbgtest.c
index 5426046..d69456b 100644
--- a/test/drbgtest.c
+++ b/test/drbgtest.c
@@ -783,6 +783,8 @@ error:
 }
 
 #if defined(OPENSSL_THREADS)
+static int multi_thread_rand_bytes_succeeded = 1;
+static int multi_thread_rand_priv_bytes_succeeded = 1;
 
 static void run_multi_thread_test(void)
 {
@@ -796,8 +798,10 @@ static void run_multi_thread_test(void)
     RAND_DRBG_set_reseed_time_interval(private, 1);
 
     do {
-        RAND_bytes(buf, sizeof(buf));
-        RAND_priv_bytes(buf, sizeof(buf));
+        if (RAND_bytes(buf, sizeof(buf)) <= 0)
+            multi_thread_rand_bytes_succeeded = 0;
+        if (RAND_priv_bytes(buf, sizeof(buf)) <= 0)
+            multi_thread_rand_priv_bytes_succeeded = 0;
     }
     while(time(NULL) - start < 5);
 }
@@ -849,7 +853,7 @@ static int wait_for_thread(thread_t thread)
  * The main thread will also run the test, so we'll have THREADS+1 parallel
  * tests running
  */
-#define THREADS 3
+# define THREADS 3
 
 static int test_multi_thread(void)
 {
@@ -861,6 +865,12 @@ static int test_multi_thread(void)
     run_multi_thread_test();
     for (i = 0; i < THREADS; i++)
         wait_for_thread(t[i]);
+
+    if (!TEST_true(multi_thread_rand_bytes_succeeded))
+        return 0;
+    if (!TEST_true(multi_thread_rand_priv_bytes_succeeded))
+        return 0;
+
     return 1;
 }
 #endif


More information about the openssl-commits mailing list