From: Denis V. Lunev Date: Wed, 5 Mar 2008 22:43:05 +0000 (-0800) Subject: IPV6: dst_entry leak in ip4ip6_err. X-Git-Tag: v2.6.24.4~68 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb59adefa5eccfde1e7e174a8fb48fe45bc089f9;p=thirdparty%2Fkernel%2Fstable.git IPV6: dst_entry leak in ip4ip6_err. Upstream commit: 9937ded8e44de8865cba1509d24eea9d350cebf0 The result of the ip_route_output is not assigned to skb. This means that - it is leaked - possible OOPS below dereferrencing skb->dst - no ICMP message for this case Signed-off-by: Denis V. Lunev Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman Signed-off-by: Chris Wright --- diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index 5383b33db8ca6..81941a1e8e496 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c @@ -550,6 +550,7 @@ ip4ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, ip_rt_put(rt); goto out; } + skb2->dst = (struct dst_entry *)rt; } else { ip_rt_put(rt); if (ip_route_input(skb2, eiph->daddr, eiph->saddr, eiph->tos,