crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS
authorEric Biggers <ebiggers@google.com>
Mon, 22 Mar 2021 05:07:48 +0000 (22:07 -0700)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 2 Apr 2021 07:28:12 +0000 (18:28 +1100)
commit30d0f6a956fc74bb2e948398daf3278c6b08c7e9
treeac74a11ccca1fc3a2c1e5c1ee3ec2ec132f65c95
parent10cb823bbacd2626cca8d89a7dba175c3ae5cf07
crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS

crypto_stats_get() is a no-op when the kernel is compiled without
CONFIG_CRYPTO_STATS, so pairing it with crypto_alg_put() unconditionally
(as crypto_rng_reset() does) is wrong.

Fix this by moving the call to crypto_stats_get() to just before the
actual algorithm operation which might need it.  This makes it always
paired with crypto_stats_rng_seed().

Fixes: eed74b3eba9e ("crypto: rng - Fix a refcounting bug in crypto_rng_reset()")
Cc: stable@vger.kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/rng.c