From 31587bdd153040fa641bd0f5967b69a3b0a9559f Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sun, 24 Apr 2016 12:26:56 +0100 Subject: [PATCH] random: call abort(3) instead of assert in must_succeed macro Avoids silent use of bad RNG in release builds, in case those calls might actually fail. Reported by smooth. --- src/crypto/random.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/crypto/random.c b/src/crypto/random.c index d7fcb7e65..f8a50d850 100644 --- a/src/crypto/random.c +++ b/src/crypto/random.c @@ -45,7 +45,7 @@ static void generate_system_random_bytes(size_t n, void *result); static void generate_system_random_bytes(size_t n, void *result) { HCRYPTPROV prov; -#define must_succeed(x) do if (!(x)) assert(0); while (0) +#define must_succeed(x) do if (!(x)) abort(); while (0) must_succeed(CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT | CRYPT_SILENT)); must_succeed(CryptGenRandom(prov, (DWORD)n, result)); must_succeed(CryptReleaseContext(prov, 0));