diff options
Diffstat (limited to 'net/tipc/crypto.c')
| -rw-r--r-- | net/tipc/crypto.c | 4 | 
1 files changed, 4 insertions, 0 deletions
| diff --git a/net/tipc/crypto.c b/net/tipc/crypto.c index dc60c32bb70d..d293614d5fc6 100644 --- a/net/tipc/crypto.c +++ b/net/tipc/crypto.c @@ -597,6 +597,10 @@ static int tipc_aead_init(struct tipc_aead **aead, struct tipc_aead_key *ukey,  	tmp->cloned = NULL;  	tmp->authsize = TIPC_AES_GCM_TAG_SIZE;  	tmp->key = kmemdup(ukey, tipc_aead_key_size(ukey), GFP_KERNEL); +	if (!tmp->key) { +		tipc_aead_free(&tmp->rcu); +		return -ENOMEM; +	}  	memcpy(&tmp->salt, ukey->key + keylen, TIPC_AES_GCM_SALT_SIZE);  	atomic_set(&tmp->users, 0);  	atomic64_set(&tmp->seqno, 0); |