]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
crypto: rng - Ensure set_ent is always present
authorHerbert Xu <herbert@gondor.apana.org.au>
Thu, 2 Oct 2025 09:45:39 +0000 (17:45 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 12 Oct 2025 11:01:04 +0000 (13:01 +0200)
commit c0d36727bf39bb16ef0a67ed608e279535ebf0da upstream.

Ensure that set_ent is always set since only drbg provides it.

Fixes: 77ebdabe8de7 ("crypto: af_alg - add extra parameters for DRBG interface")
Reported-by: Yiqi Sun <sunyiqixm@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
crypto/rng.c

index b8ae6ebc091dd5a1ef392a7ab54577c42797a044..ee1768c5a4005b0a888c4dafe6da33fb6ef14d6b 100644 (file)
@@ -168,6 +168,11 @@ out:
 EXPORT_SYMBOL_GPL(crypto_del_default_rng);
 #endif
 
+static void rng_default_set_ent(struct crypto_rng *tfm, const u8 *data,
+                               unsigned int len)
+{
+}
+
 int crypto_register_rng(struct rng_alg *alg)
 {
        struct crypto_alg *base = &alg->base;
@@ -179,6 +184,9 @@ int crypto_register_rng(struct rng_alg *alg)
        base->cra_flags &= ~CRYPTO_ALG_TYPE_MASK;
        base->cra_flags |= CRYPTO_ALG_TYPE_RNG;
 
+       if (!alg->set_ent)
+               alg->set_ent = rng_default_set_ent;
+
        return crypto_register_alg(base);
 }
 EXPORT_SYMBOL_GPL(crypto_register_rng);