aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/ssluse.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/ssluse.c b/lib/ssluse.c
index 2365d5283..ffc1fbd96 100644
--- a/lib/ssluse.c
+++ b/lib/ssluse.c
@@ -225,8 +225,7 @@ static int ossl_seed(struct SessionHandle *data)
/* If we get here, it means we need to seed the PRNG using a "silly"
approach! */
#ifdef HAVE_RAND_SCREEN
- /* This one gets a random value by reading the currently shown screen */
- RAND_screen();
+ /* if RAND_screen() is present, it was called during global init */
nread = 100; /* just a value */
#else
{
@@ -642,6 +641,13 @@ int Curl_ossl_init(void)
OpenSSL_add_all_algorithms();
+#ifdef HAVE_RAND_SCREEN
+ /* This one gets a random value by reading the currently shown screen.
+ RAND_screen() is not thread-safe according to OpenSSL devs - although not
+ mentioned in documentation. */
+ RAND_screen();
+#endif
+
return 1;
}