Re: [PATCH RESEND] random: fix the RNDRESEEDCRNG ioctl

From: Ard Biesheuvel
Date: Wed Jan 13 2021 - 06:52:54 EST


On Tue, 12 Jan 2021 at 20:30, Eric Biggers <ebiggers@xxxxxxxxxx> wrote:
>
> From: Eric Biggers <ebiggers@xxxxxxxxxx>
>
> The RNDRESEEDCRNG ioctl reseeds the primary_crng from itself, which
> doesn't make sense. Reseed it from the input_pool instead.
>
> Fixes: d848e5f8e1eb ("random: add new ioctl RNDRESEEDCRNG")
> Cc: stable@xxxxxxxxxxxxxxx
> Cc: linux-crypto@xxxxxxxxxxxxxxx
> Cc: Andy Lutomirski <luto@xxxxxxxxxx>
> Cc: Jann Horn <jannh@xxxxxxxxxx>
> Cc: Theodore Ts'o <tytso@xxxxxxx>
> Reviewed-by: Jann Horn <jannh@xxxxxxxxxx>
> Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx>

Acked-by: Ard Biesheuvel <ardb@xxxxxxxxxx>

> ---
>
> Andrew, please consider taking this patch since the maintainer has been
> ignoring it for 4 months
> (https://lkml.kernel.org/lkml/20200916041908.66649-1-ebiggers@xxxxxxxxxx/T/#u).
>
>
> drivers/char/random.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/char/random.c b/drivers/char/random.c
> index 5f3b8ac9d97b0..a894c0559a8cf 100644
> --- a/drivers/char/random.c
> +++ b/drivers/char/random.c
> @@ -1972,7 +1972,7 @@ static long random_ioctl(struct file *f, unsigned int cmd, unsigned long arg)
> return -EPERM;
> if (crng_init < 2)
> return -ENODATA;
> - crng_reseed(&primary_crng, NULL);
> + crng_reseed(&primary_crng, &input_pool);
> crng_global_init_time = jiffies - 1;
> return 0;
> default:
> --
> 2.30.0
>