| From foo@baz Thu 19 Sep 2019 03:07:06 PM CEST |
| From: Xin Long <lucien.xin@gmail.com> |
| Date: Fri, 13 Sep 2019 17:45:47 +0800 |
| Subject: ip6_gre: fix a dst leak in ip6erspan_tunnel_xmit |
| |
| From: Xin Long <lucien.xin@gmail.com> |
| |
| [ Upstream commit 28e486037747c2180470b77c290d4090ad42f259 ] |
| |
| In ip6erspan_tunnel_xmit(), if the skb will not be sent out, it has to |
| be freed on the tx_err path. Otherwise when deleting a netns, it would |
| cause dst/dev to leak, and dmesg shows: |
| |
| unregister_netdevice: waiting for lo to become free. Usage count = 1 |
| |
| Fixes: ef7baf5e083c ("ip6_gre: add ip6 erspan collect_md mode") |
| Signed-off-by: Xin Long <lucien.xin@gmail.com> |
| Acked-by: William Tu <u9012063@gmail.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/ipv6/ip6_gre.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/net/ipv6/ip6_gre.c |
| +++ b/net/ipv6/ip6_gre.c |
| @@ -988,7 +988,7 @@ static netdev_tx_t ip6erspan_tunnel_xmit |
| if (unlikely(!tun_info || |
| !(tun_info->mode & IP_TUNNEL_INFO_TX) || |
| ip_tunnel_info_af(tun_info) != AF_INET6)) |
| - return -EINVAL; |
| + goto tx_err; |
| |
| key = &tun_info->key; |
| memset(&fl6, 0, sizeof(fl6)); |