Pārlūkot izejas kodu

ipv6-multicast: Fix memory leak in IPv6 multicast.

If reg_vif_xmit cannot find a routing entry, be sure to
free the skb before returning the error.

Signed-off-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Ben Greear 13 gadi atpakaļ
vecāks
revīzija
67928c4041
1 mainītis faili ar 3 papildinājumiem un 1 dzēšanām
  1. 3 1
      net/ipv6/ip6mr.c

+ 3 - 1
net/ipv6/ip6mr.c

@@ -696,8 +696,10 @@ static netdev_tx_t reg_vif_xmit(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);
 	dev->stats.tx_bytes += skb->len;