diff options
| -rw-r--r-- | net/batman-adv/main.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c index 6c54a8d4be3e..ced76942f33c 100644 --- a/net/batman-adv/main.c +++ b/net/batman-adv/main.c @@ -484,8 +484,10 @@ int batadv_batman_skb_recv(struct sk_buff *skb, struct net_device *dev, * shut down otherwise the packet may trigger de-reference errors * further down in the receive path. */ - if (!kref_get_unless_zero(&hard_iface->refcount)) - goto err_out; + if (!kref_get_unless_zero(&hard_iface->refcount)) { + kfree_skb(skb); + return NET_RX_DROP; + } skb = skb_share_check(skb, GFP_ATOMIC); @@ -541,7 +543,6 @@ err_free: kfree_skb(skb); err_put: batadv_hardif_put(hard_iface); -err_out: return NET_RX_DROP; } |
