rand/rand_unix.c: omit error from DSO_global_lookup.
authorAndy Polyakov <appro@openssl.org>
Fri, 8 Jun 2018 09:03:32 +0000 (11:03 +0200)
committerAndy Polyakov <appro@openssl.org>
Sat, 9 Jun 2018 12:43:33 +0000 (14:43 +0200)
If built with no-dso, DSO_global_lookup leaves "unsupported" message
in error queue. Since there is a fall-back code, it's unnecessary
distraction.

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
(Merged from https://github.com/openssl/openssl/pull/6436)

crypto/rand/rand_unix.c

index 9f17494d118816af7eef2026300b1c0e439698e6..e8222e98735f8e18fde27722db99e52c8c422eed 100644 (file)
@@ -247,7 +247,9 @@ int syscall_random(void *buf, size_t buflen)
      * - Linux since 3.17 with glibc 2.25
      * - FreeBSD since 12.0 (1200061)
      */
+    ERR_set_mark();
     p_getentropy.p = DSO_global_lookup("getentropy");
+    ERR_pop_to_mark();
     if (p_getentropy.p != NULL)
         return p_getentropy.f(buf, buflen) == 0 ? buflen : 0;