diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c index 705c82886281358968a2a7af70a9a1000051698a..825d02fa658678e40312c09bd778a6485be09925 100644 --- a/net/ipv6/ip6mr.c +++ b/net/ipv6/ip6mr.c @@ -2052,8 +2052,10 @@ int ip6_mr_input(struct sk_buff *skb) int err; err = ip6mr_fib_lookup(net, &fl6, &mrt); - if (err < 0) + if (err < 0) { + kfree_skb(skb); return err; + } read_lock(&mrt_lock); cache = ip6mr_cache_find(mrt,