ipv6-multicast: Fix memory leak in input path.
authorBen Greear <greearb@candelatech.com>
Tue, 27 Sep 2011 19:16:08 +0000 (15:16 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 27 Sep 2011 19:16:08 +0000 (15:16 -0400)
Have to free the skb before returning if we fail
the fib lookup.

Signed-off-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ip6mr.c

index 705c82886281358968a2a7af70a9a1000051698a..825d02fa658678e40312c09bd778a6485be09925 100644 (file)
@@ -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,