diff --git a/src/crypto/random.c b/src/crypto/random.c index 7f5c08a6d..5b15354b7 100644 --- a/src/crypto/random.c +++ b/src/crypto/random.c @@ -354,6 +354,7 @@ static void random_write_entropy(void) char buf[RANDOM_ENTROPY_SIZE]; FILE *f; u8 opr; + int fail = 0; if (!random_entropy_file) return; @@ -369,9 +370,15 @@ static void random_write_entropy(void) } opr = own_pool_ready > 0xff ? 0xff : own_pool_ready; - fwrite(&opr, 1, 1, f); - fwrite(buf, RANDOM_ENTROPY_SIZE, 1, f); + if (fwrite(&opr, 1, 1, f) != 1 || + fwrite(buf, RANDOM_ENTROPY_SIZE, 1, f) != 1) + fail = 1; fclose(f); + if (fail) { + wpa_printf(MSG_ERROR, "random: Could not entropy data to %s", + random_entropy_file); + return; + } wpa_printf(MSG_DEBUG, "random: Updated entropy file %s " "(own_pool_ready=%u)",