diff options
| author | Thorsten Blum <thorsten.blum@linux.dev> | 2026-03-19 04:07:36 +0300 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2026-03-25 13:05:57 +0300 |
| commit | 2bfc83cee05f8b9604502df27d94e8e2b4a3dbf1 (patch) | |
| tree | 250652b8621523f4ae7aaa140220c2fefc5438c0 /drivers/crypto | |
| parent | 0629a1a187e424373364d681b42b101894bdb548 (diff) | |
| download | linux-2bfc83cee05f8b9604502df27d94e8e2b4a3dbf1.tar.xz | |
crypto: atmel-sha204a - Fix OOM ->tfm_count leak
[ Upstream commit d240b079a37e90af03fd7dfec94930eb6c83936e ]
If memory allocation fails, decrement ->tfm_count to avoid blocking
future reads.
Cc: stable@vger.kernel.org
Fixes: da001fb651b0 ("crypto: atmel-i2c - add support for SHA204A random number generator")
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
[ adapted kmalloc_obj() macro to kmalloc(sizeof()) ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/crypto')
| -rw-r--r-- | drivers/crypto/atmel-sha204a.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/crypto/atmel-sha204a.c b/drivers/crypto/atmel-sha204a.c index 5bc809146ffe..67fd084a2b97 100644 --- a/drivers/crypto/atmel-sha204a.c +++ b/drivers/crypto/atmel-sha204a.c @@ -52,9 +52,10 @@ static int atmel_sha204a_rng_read_nonblocking(struct hwrng *rng, void *data, rng->priv = 0; } else { work_data = kmalloc(sizeof(*work_data), GFP_ATOMIC); - if (!work_data) + if (!work_data) { + atomic_dec(&i2c_priv->tfm_count); return -ENOMEM; - + } work_data->ctx = i2c_priv; work_data->client = i2c_priv->client; |
