A recent patch introduced pmtu handling directly in the
vti transmit routine. Unfortunately we now return without
releasing the dst_entry and freeing the sk_buff. This patch
fixes the issue.

Fixes: 325b71fe0f57 ("vti: Add pmtu handling to vti_xmit.")
Reported-by: Mark McKinstry <mark.mckins...@alliedtelesis.co.nz>
Signed-off-by: Steffen Klassert <steffen.klass...@secunet.com>
---
 net/ipv4/ip_vti.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/ipv4/ip_vti.c b/net/ipv4/ip_vti.c
index 6862305..2ea2b6e 100644
--- a/net/ipv4/ip_vti.c
+++ b/net/ipv4/ip_vti.c
@@ -206,7 +206,8 @@ static netdev_tx_t vti_xmit(struct sk_buff *skb, struct 
net_device *dev,
                else
                        icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
 
-               return -EMSGSIZE;
+               dst_release(dst);
+               goto tx_error;
        }
 
        err = dst_output(tunnel->net, skb->sk, skb);
-- 
1.9.1

Reply via email to