diff options
author | Tony Lindgren <tony@atomide.com> | 2020-06-08 20:14:49 +0300 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2020-06-08 20:14:49 +0300 |
commit | 4263eb6880df8383fff0efb872278a99eb6142c8 (patch) | |
tree | 67ab9bf228e4f5f341f9408e055180932b39fe06 /net/tipc/node.c | |
parent | 636338d7968e47c7f2e0b772a2a825ad932883fb (diff) | |
parent | 8e326a8bdef3fb42b92bf2742e8405d9b9209367 (diff) | |
download | linux-4263eb6880df8383fff0efb872278a99eb6142c8.tar.xz |
Merge branch 'fixes-v5.7' into fixes
Diffstat (limited to 'net/tipc/node.c')
-rw-r--r-- | net/tipc/node.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c index 10292c942384..803a3a6d0f50 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c @@ -2038,6 +2038,7 @@ void tipc_rcv(struct net *net, struct sk_buff *skb, struct tipc_bearer *b) n = tipc_node_find_by_id(net, ehdr->id); } tipc_crypto_rcv(net, (n) ? n->crypto_rx : NULL, &skb, b); + tipc_node_put(n); if (!skb) return; @@ -2090,7 +2091,7 @@ rcv: /* Check/update node state before receiving */ if (unlikely(skb)) { if (unlikely(skb_linearize(skb))) - goto discard; + goto out_node_put; tipc_node_write_lock(n); if (tipc_node_check_state(n, skb, bearer_id, &xmitq)) { if (le->link) { @@ -2119,6 +2120,7 @@ rcv: if (!skb_queue_empty(&xmitq)) tipc_bearer_xmit(net, bearer_id, &xmitq, &le->maddr, n); +out_node_put: tipc_node_put(n); discard: kfree_skb(skb); |