diff options
Diffstat (limited to 'net/tipc')
| -rw-r--r-- | net/tipc/crypto.c | 3 | ||||
| -rw-r--r-- | net/tipc/node.c | 2 | 
2 files changed, 3 insertions, 2 deletions
diff --git a/net/tipc/crypto.c b/net/tipc/crypto.c index 577fa5af33ec..302fd749c424 100644 --- a/net/tipc/crypto.c +++ b/net/tipc/crypto.c @@ -1960,7 +1960,8 @@ rcv:  	skb_reset_network_header(*skb);  	skb_pull(*skb, tipc_ehdr_size(ehdr)); -	pskb_trim(*skb, (*skb)->len - aead->authsize); +	if (pskb_trim(*skb, (*skb)->len - aead->authsize)) +		goto free_skb;  	/* Validate TIPCv2 message */  	if (unlikely(!tipc_msg_validate(skb))) { diff --git a/net/tipc/node.c b/net/tipc/node.c index 5e000fde8067..a9c5b6594889 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c @@ -583,7 +583,7 @@ update:  				 n->capabilities, &n->bc_entry.inputq1,  				 &n->bc_entry.namedq, snd_l, &n->bc_entry.link)) {  		pr_warn("Broadcast rcv link creation failed, no memory\n"); -		kfree(n); +		tipc_node_put(n);  		n = NULL;  		goto exit;  	}  |