[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1850213.PsBaiHKxjm@tauon.chronox.de>
Date: Sat, 21 Oct 2017 21:22:52 +0200
From: Stephan Mueller <smueller@...onox.de>
To: "Jason A. Donenfeld" <Jason@...c4.com>
Cc: Kees Cook <keescook@...omium.org>,
LKML <linux-kernel@...r.kernel.org>,
linux-crypto@...r.kernel.org, herbert@...dor.apana.org.au,
tytso@....edu, gregkh@...uxfoundation.org
Subject: Re: [PATCH 2/2] crypto/drbg: account for no longer returning -EALREADY
Am Donnerstag, 19. Oktober 2017, 22:45:06 CEST schrieb Jason A. Donenfeld:
Hi Jason,
> We now structure things in a way that assumes the seeding function is
> always eventually called.
>
> Signed-off-by: Jason A. Donenfeld <Jason@...c4.com>
> ---
> crypto/drbg.c | 20 +++++---------------
> 1 file changed, 5 insertions(+), 15 deletions(-)
>
> diff --git a/crypto/drbg.c b/crypto/drbg.c
> index 70018397e59a..501e013cb96c 100644
> --- a/crypto/drbg.c
> +++ b/crypto/drbg.c
> @@ -1411,18 +1411,8 @@ static int drbg_prepare_hrng(struct drbg_state *drbg)
>
> err = add_random_ready_callback(&drbg->random_ready);
>
> - switch (err) {
> - case 0:
> - break;
> -
> - case -EALREADY:
> - err = 0;
> - /* fall through */
> -
> - default:
> - drbg->random_ready.func = NULL;
> + if (err)
> return err;
Don't you change the logic flow here? In case the add_random_ready_callback
returns 0 because the ready function is already called due to crng_ready(),
the new code above in the patch set continues. But with the current code, it
will return at this point and do not perform the allocation below.
Ciao
Stephan
Powered by blists - more mailing lists