OSDN Git Service

hwrng: core - use rng_fillbuf in add_early_randomness()
authorDominik Brodowski <linux@dominikbrodowski.net>
Mon, 24 Jan 2022 20:29:48 +0000 (21:29 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 5 Feb 2022 04:10:49 +0000 (15:10 +1100)
Using rng_buffer in add_early_randomness() may race with rng_dev_read().
Use rng_fillbuf instead, as it is otherwise only used within the kernel
by hwrng_fillfn() and therefore never exposed to userspace.

Cc: Matt Mackall <mpm@selenic.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/char/hw_random/core.c

index c2d260b..89891ac 100644 (file)
@@ -66,10 +66,10 @@ static void add_early_randomness(struct hwrng *rng)
        int bytes_read;
 
        mutex_lock(&reading_mutex);
-       bytes_read = rng_get_data(rng, rng_buffer, 32, 0);
+       bytes_read = rng_get_data(rng, rng_fillbuf, 32, 0);
        mutex_unlock(&reading_mutex);
        if (bytes_read > 0)
-               add_device_randomness(rng_buffer, bytes_read);
+               add_device_randomness(rng_fillbuf, bytes_read);
 }
 
 static inline void cleanup_rng(struct kref *kref)