test/drbgtest.c: call OPENSSL_thread_stop() explicitly
authorRichard Levitte <levitte@openssl.org>
Wed, 6 Feb 2019 19:51:47 +0000 (20:51 +0100)
committerRichard Levitte <levitte@openssl.org>
Thu, 7 Feb 2019 19:15:21 +0000 (20:15 +0100)
The manual says this in its notes:

    ... and therefore applications using static linking should also call
    OPENSSL_thread_stop() on each thread. ...

Fixes #8171

Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/8173)

test/drbgtest.c

index 4546f633765db3c26c8e844133eb7bdd6475b908..c788f19fc553c3aba3496ab329370138d7db1293 100644 (file)
@@ -839,6 +839,11 @@ typedef HANDLE thread_t;
 static DWORD WINAPI thread_run(LPVOID arg)
 {
     run_multi_thread_test();
+    /*
+     * Because we're linking with a static library, we must stop each
+     * thread explicitly, or so says OPENSSL_thread_stop(3)
+     */
+    OPENSSL_thread_stop();
     return 0;
 }
 
@@ -860,6 +865,11 @@ typedef pthread_t thread_t;
 static void *thread_run(void *arg)
 {
     run_multi_thread_test();
+    /*
+     * Because we're linking with a static library, we must stop each
+     * thread explicitly, or so says OPENSSL_thread_stop(3)
+     */
+    OPENSSL_thread_stop();
     return NULL;
 }