| From 11f81df10453542ec8928675d24cbd94c7c774af Mon Sep 17 00:00:00 2001 |
| From: "fan.du" <fan.du@windriver.com> |
| Date: Tue, 19 Nov 2013 16:53:28 +0800 |
| Subject: xfrm: Release dst if this dst is improper for vti tunnel |
| |
| From: "fan.du" <fan.du@windriver.com> |
| |
| [ Upstream commit 236c9f84868534c718b6889aa624de64763281f9 ] |
| |
| After searching rt by the vti tunnel dst/src parameter, |
| if this rt has neither attached to any transformation |
| nor the transformation is not tunnel oriented, this rt |
| should be released back to ip layer. |
| |
| otherwise causing dst memory leakage. |
| |
| Signed-off-by: Fan Du <fan.du@windriver.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/ipv4/ip_vti.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/net/ipv4/ip_vti.c |
| +++ b/net/ipv4/ip_vti.c |
| @@ -350,6 +350,7 @@ static netdev_tx_t vti_tunnel_xmit(struc |
| if (!rt->dst.xfrm || |
| rt->dst.xfrm->props.mode != XFRM_MODE_TUNNEL) { |
| dev->stats.tx_carrier_errors++; |
| + ip_rt_put(rt); |
| goto tx_error_icmp; |
| } |
| tdev = rt->dst.dev; |