Fixed coverity warning by freeing the memory before return
Addresses-Coverity: 1494433 ("Resource leak")
Signed-off-by: Ameer Hamza <[email protected]>
---
net/tipc/crypto.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/tipc/crypto.c b/net/tipc/crypto.c
index b4d9419a015b..10e6d0e9ddbc 100644
--- a/net/tipc/crypto.c
+++ b/net/tipc/crypto.c
@@ -599,6 +599,7 @@ static int tipc_aead_init(struct tipc_aead **aead, struct tipc_aead_key *ukey,
tmp->key = kmemdup(ukey, tipc_aead_key_size(ukey), GFP_KERNEL);
if (!tmp->key) {
tipc_aead_free(&tmp->rcu);
+ kfree_sensitive(tmp);
return -ENOMEM;
}
memcpy(&tmp->salt, ukey->key + keylen, TIPC_AES_GCM_SALT_SIZE);
--
2.25.1
On Fri, Dec 03, 2021 at 10:48:48PM +0500, Ameer Hamza wrote:
> Fixed coverity warning by freeing the memory before return
>
> Addresses-Coverity: 1494433 ("Resource leak")
>
> Signed-off-by: Ameer Hamza <[email protected]>
> ---
> net/tipc/crypto.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/net/tipc/crypto.c b/net/tipc/crypto.c
> index b4d9419a015b..10e6d0e9ddbc 100644
> --- a/net/tipc/crypto.c
> +++ b/net/tipc/crypto.c
> @@ -599,6 +599,7 @@ static int tipc_aead_init(struct tipc_aead **aead, struct tipc_aead_key *ukey,
> tmp->key = kmemdup(ukey, tipc_aead_key_size(ukey), GFP_KERNEL);
> if (!tmp->key) {
> tipc_aead_free(&tmp->rcu);
> + kfree_sensitive(tmp);
> return -ENOMEM;
> }
> memcpy(&tmp->salt, ukey->key + keylen, TIPC_AES_GCM_SALT_SIZE);
> --
> 2.25.1
>
I reviewed this change again and coverity is generating a false
positive here. tipc_aead_free() is already releasing the allocated
memory for tmp. Please ignore this patch and sorry for the
inconvinience.