Message ID | 20230801135709.2218855-1-fred@cloudflare.com |
---|---|
State | Accepted |
Commit | 6b4b53ca0b7300ba2af98a49dbce22054bf034fe |
Headers | show |
Series | crypto: af_alg - Decrement struct key.usage in alg_set_by_key_serial() | expand |
On Tue, Aug 01, 2023 at 08:57:09AM -0500, Frederick Lawler wrote: > Calls to lookup_user_key() require a corresponding key_put() to > decrement the usage counter. Once it reaches zero, we schedule key GC. > Therefore decrement struct key.usage in alg_set_by_key_serial(). > > Fixes: 7984ceb134bf ("crypto: af_alg - Support symmetric encryption via keyring keys") > Cc: <stable@vger.kernel.org> > Signed-off-by: Frederick Lawler <fred@cloudflare.com> > --- > This is rebased ontop of Linus's 6.5-rc1. Original patch was introduced in 6.2. > --- > crypto/af_alg.c | 3 +++ > 1 file changed, 3 insertions(+) Patch applied. Thanks.
diff --git a/crypto/af_alg.c b/crypto/af_alg.c index 6218c773d71c..295ede1996a4 100644 --- a/crypto/af_alg.c +++ b/crypto/af_alg.c @@ -320,18 +320,21 @@ static int alg_setkey_by_key_serial(struct alg_sock *ask, sockptr_t optval, if (IS_ERR(ret)) { up_read(&key->sem); + key_put(key); return PTR_ERR(ret); } key_data = sock_kmalloc(&ask->sk, key_datalen, GFP_KERNEL); if (!key_data) { up_read(&key->sem); + key_put(key); return -ENOMEM; } memcpy(key_data, ret, key_datalen); up_read(&key->sem); + key_put(key); err = type->setkey(ask->private, key_data, key_datalen);
Calls to lookup_user_key() require a corresponding key_put() to decrement the usage counter. Once it reaches zero, we schedule key GC. Therefore decrement struct key.usage in alg_set_by_key_serial(). Fixes: 7984ceb134bf ("crypto: af_alg - Support symmetric encryption via keyring keys") Cc: <stable@vger.kernel.org> Signed-off-by: Frederick Lawler <fred@cloudflare.com> --- This is rebased ontop of Linus's 6.5-rc1. Original patch was introduced in 6.2. --- crypto/af_alg.c | 3 +++ 1 file changed, 3 insertions(+)