diff options
author | Nobuyoshi Nakada <[email protected]> | 2021-08-23 23:41:45 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <[email protected]> | 2021-11-06 17:39:37 +0900 |
commit | 66b0847602ffa47575371f4d5a9a04dc6013ba49 () | |
tree | 4b816342c9bbccbd80f39ab89e6b25a4364c8a3a /random.c | |
parent | e5792e7d552235e17a93d50a26c375db1974148f (diff) |
Check the reading size range
-rw-r--r-- | random.c | 23 |
1 files changed, 19 insertions, 4 deletions
@@ -538,6 +538,11 @@ fill_random_bytes_syscall(void *buf, size_t size, int unused) #endif } #elif defined(_WIN32) # if defined(CRYPT_VERIFYCONTEXT) STATIC_ASSERT(sizeof_HCRYPTPROV, sizeof(HCRYPTPROV) == sizeof(size_t)); @@ -580,7 +585,12 @@ fill_random_bytes_crypt(void *seed, size_t size) } } if (prov == INVALID_HCRYPTPROV) return -1; - CryptGenRandom(prov, size, seed); return 0; } # else @@ -590,9 +600,14 @@ fill_random_bytes_crypt(void *seed, size_t size) static int fill_random_bytes_bcrypt(void *seed, size_t size) { - if (!BCryptGenRandom(NULL, seed, size, BCRYPT_USE_SYSTEM_PREFERRED_RNG)) - return 0; - return -1; } static int |