Merge pull request #3187

851bd057 call _exit instead of abort in release mode (moneromooo-monero)
This commit is contained in:
Riccardo Spagni 2018-02-16 14:20:31 +01:00
commit 666a76652b
No known key found for this signature in database
GPG key ID: 55432DF31CCD4FCD
6 changed files with 49 additions and 7 deletions

View file

@ -45,7 +45,11 @@ static void generate_system_random_bytes(size_t n, void *result);
static void generate_system_random_bytes(size_t n, void *result) {
HCRYPTPROV prov;
#ifdef NDEBUG
#define must_succeed(x) do if (!(x)) { fprintf(stderr, "Failed: " #x); _exit(1); } while (0)
#else
#define must_succeed(x) do if (!(x)) abort(); while (0)
#endif
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));