From cc083fbae9cb7e8584f06f383b9c021e40527594 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sat, 14 Jun 2014 14:14:29 +0000 Subject: [PATCH] patch: clear error on Rand_bytes() errors --- src/sys/rand.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/sys/rand.c b/src/sys/rand.c index f598c91..32e7aad 100644 --- a/src/sys/rand.c +++ b/src/sys/rand.c @@ -79,7 +79,9 @@ uint32_t rand_u32(void) #ifdef USE_OPENSSL v = 0; if (RAND_bytes((unsigned char *)&v, sizeof(v)) <= 0) { - DEBUG_WARNING("RAND_bytes() error: %u\n", ERR_get_error()); + DEBUG_WARNING("RAND_bytes() error: %i\n", + ERR_GET_REASON(ERR_get_error())); + ERR_clear_error(); } #elif defined(WIN32) v = (rand() << 16) + rand(); /* note: 16-bit rand */ @@ -153,7 +155,9 @@ void rand_bytes(uint8_t *p, size_t size) { #ifdef USE_OPENSSL if (RAND_bytes(p, (int)size) <= 0) { - DEBUG_WARNING("RAND_bytes() error: %u\n", ERR_get_error()); + DEBUG_WARNING("RAND_bytes() error: %i\n", + ERR_GET_REASON(ERR_get_error())); + ERR_clear_error(); } #else while (size--) {