From 8fc8d2f380ee8a99bf46a35e753b5efc0a69e80a Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Wed, 9 Apr 2014 19:07:41 -0700 Subject: [PATCH] A DWORD is the maximum CryptGenRandom() can support. --- src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c b/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c index 304f4878..d0e25209 100644 --- a/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c +++ b/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c @@ -169,7 +169,10 @@ randombytes_sysrandom_buf(void * const buf, const size_t size) abort(); } #else - if (! CryptGenRandom(stream.hcrypt_prov, size, (BYTE *) buf)) { + if (size > 0xffffffff) { + abort(); + } + if (! CryptGenRandom(stream.hcrypt_prov, (DWORD) size, (BYTE *) buf)) { abort(); } #endif