mirror of
https://github.com/jedisct1/libsodium.git
synced 2026-08-25 08:37:13 +09:00
Save and restore errno when opening the random device.
This commit is contained in:
@@ -128,6 +128,8 @@ randombytes_salsa20_random_random_dev_open(void)
|
||||
static void
|
||||
randombytes_salsa20_random_init(void)
|
||||
{
|
||||
const int errno_save = errno;
|
||||
|
||||
stream.nonce = sodium_hrtime();
|
||||
assert(stream.nonce != (uint64_t) 0U);
|
||||
|
||||
@@ -135,6 +137,7 @@ randombytes_salsa20_random_init(void)
|
||||
randombytes_salsa20_random_random_dev_open()) == -1) {
|
||||
abort();
|
||||
}
|
||||
errno = errno_save;
|
||||
}
|
||||
|
||||
#else /* _WIN32 */
|
||||
|
||||
@@ -88,10 +88,13 @@ randombytes_sysrandom_random_dev_open(void)
|
||||
static void
|
||||
randombytes_sysrandom_init(void)
|
||||
{
|
||||
const int errno_save = errno;
|
||||
|
||||
if ((stream.random_data_source_fd =
|
||||
randombytes_sysrandom_random_dev_open()) == -1) {
|
||||
abort();
|
||||
}
|
||||
errno = errno_save;
|
||||
}
|
||||
|
||||
#else /* _WIN32 */
|
||||
|
||||
Reference in New Issue
Block a user