Save and restore errno when opening the random device.

This commit is contained in:
Frank Denis
2014-02-09 09:48:43 -08:00
parent 28b3f2ab0e
commit afcba42802
2 changed files with 6 additions and 0 deletions
@@ -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 */