* [PATCH 6.18,6.12,6.6,6.1,5.15,5.10] crypto: drbg - Fix ineffective sanity check
@ 2026-10-10 8:17 Eric Biggers
2026-10-11 16:48 ` Sasha Levin
0 siblings, 1 reply; 2+ messages in thread
From: Eric Biggers @ 2026-10-10 8:17 UTC (permalink / raw)
To: stable; +Cc: linux-crypto, Eric Biggers, Herbert Xu
commit 040ad83b0e8aa065fd2fc641cacba8491a8b186d upstream.
Fix drbg_healthcheck_sanity() to correctly check the return value of
drbg_generate(). drbg_generate() returns 0 on success, or a negative
errno value on failure. drbg_healthcheck_sanity() incorrectly assumed
that it returned a positive value on success.
This didn't make the sanity check fail, but it made it ineffective.
Fixes: cde001e4c3c3 ("crypto: rng - RNGs must return 0 in success case")
Cc: stable@vger.kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
---
This commit doesn't matter for anything other than certification. But
it did have 'Cc stable' on it, and it failed to apply due to a trivial
conflict. So it might as well be backported as intended.
crypto/drbg.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/crypto/drbg.c b/crypto/drbg.c
index dc8996789da6..51c36cfa8eff 100644
--- a/crypto/drbg.c
+++ b/crypto/drbg.c
@@ -1986,7 +1986,6 @@ static int drbg_kcapi_seed(struct crypto_rng *tfm,
*/
static inline int __init drbg_healthcheck_sanity(void)
{
- int len = 0;
#define OUTBUFLEN 16
unsigned char buf[OUTBUFLEN];
struct drbg_state *drbg = NULL;
@@ -2030,12 +2029,12 @@ static inline int __init drbg_healthcheck_sanity(void)
max_addtllen = drbg_max_addtl(drbg);
max_request_bytes = drbg_max_request_bytes(drbg);
drbg_string_fill(&addtl, buf, max_addtllen + 1);
- /* overflow addtllen with additonal info string */
- len = drbg_generate(drbg, buf, OUTBUFLEN, &addtl);
- BUG_ON(0 < len);
+ /* overflow addtllen with additional info string */
+ ret = drbg_generate(drbg, buf, OUTBUFLEN, &addtl);
+ BUG_ON(ret == 0);
/* overflow max_bits */
- len = drbg_generate(drbg, buf, (max_request_bytes + 1), NULL);
- BUG_ON(0 < len);
+ ret = drbg_generate(drbg, buf, max_request_bytes + 1, NULL);
+ BUG_ON(ret == 0);
/* overflow max addtllen with personalization string */
ret = drbg_seed(drbg, &addtl, false);
base-commit: 725bd2f3c81d54edccb66fead01d4c0c222e2231
--
2.56.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH 6.18,6.12,6.6,6.1,5.15,5.10] crypto: drbg - Fix ineffective sanity check
2026-10-10 8:17 [PATCH 6.18,6.12,6.6,6.1,5.15,5.10] crypto: drbg - Fix ineffective sanity check Eric Biggers
@ 2026-10-11 16:48 ` Sasha Levin
0 siblings, 0 replies; 2+ messages in thread
From: Sasha Levin @ 2026-10-11 16:48 UTC (permalink / raw)
To: stable; +Cc: Sasha Levin, linux-crypto, Eric Biggers, Herbert Xu
> This commit doesn't matter for anything other than certification. But
> it did have 'Cc stable' on it, and it failed to apply due to a trivial
> conflict. So it might as well be backported as intended.
Queued for 6.18, 6.12, 6.6, 6.1, 5.15 and 5.10, thanks.
--
Thanks,
Sasha
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-10-11 16:48 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-10 8:17 [PATCH 6.18,6.12,6.6,6.1,5.15,5.10] crypto: drbg - Fix ineffective sanity check Eric Biggers
2026-10-11 16:48 ` Sasha Levin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox