Просмотр исходного кода

[IPV6]: skb leakage in inet6_csk_xmit

inet6_csk_xit does not free skb when routing fails.

Signed-off-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
Alexey Kuznetsov 19 лет назад
Родитель
Сommit
b0013fd47b
1 измененных файлов с 2 добавлено и 0 удалено
  1. 2 0
      net/ipv6/inet6_connection_sock.c

+ 2 - 0
net/ipv6/inet6_connection_sock.c

@@ -173,6 +173,7 @@ int inet6_csk_xmit(struct sk_buff *skb, int ipfragok)
 
 
 		if (err) {
 		if (err) {
 			sk->sk_err_soft = -err;
 			sk->sk_err_soft = -err;
+			kfree_skb(skb);
 			return err;
 			return err;
 		}
 		}
 
 
@@ -181,6 +182,7 @@ int inet6_csk_xmit(struct sk_buff *skb, int ipfragok)
 
 
 		if ((err = xfrm_lookup(&dst, &fl, sk, 0)) < 0) {
 		if ((err = xfrm_lookup(&dst, &fl, sk, 0)) < 0) {
 			sk->sk_route_caps = 0;
 			sk->sk_route_caps = 0;
+			kfree_skb(skb);
 			return err;
 			return err;
 		}
 		}