diff options
author | Patrick McHardy <kaber@trash.net> | 2007-07-18 05:04:39 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-07-18 05:04:39 -0400 |
commit | f77ae9390438409b535f3b1854672e54120cd38b (patch) | |
tree | 78abc13739257460d7d6e4ed97c840cf41b53fb7 /drivers/net/pppol2tp.c | |
parent | 7d4372b5ae2f891e8bfa96c98d450255f58b4dc1 (diff) |
[PPPOL2TP]: Reset meta-data in xmit function
Reset netfilter data and IP CB, fix dst_entry leak.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/pppol2tp.c')
-rw-r--r-- | drivers/net/pppol2tp.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/pppol2tp.c b/drivers/net/pppol2tp.c index 856610f0624e..f87176055d0e 100644 --- a/drivers/net/pppol2tp.c +++ b/drivers/net/pppol2tp.c | |||
@@ -1049,7 +1049,13 @@ static int pppol2tp_xmit(struct ppp_channel *chan, struct sk_buff *skb) | |||
1049 | printk("\n"); | 1049 | printk("\n"); |
1050 | } | 1050 | } |
1051 | 1051 | ||
1052 | memset(&(IPCB(skb2)->opt), 0, sizeof(IPCB(skb2)->opt)); | ||
1053 | IPCB(skb2)->flags &= ~(IPSKB_XFRM_TUNNEL_SIZE | IPSKB_XFRM_TRANSFORMED | | ||
1054 | IPSKB_REROUTED); | ||
1055 | nf_reset(skb2); | ||
1056 | |||
1052 | /* Get routing info from the tunnel socket */ | 1057 | /* Get routing info from the tunnel socket */ |
1058 | dst_release(skb2->dst); | ||
1053 | skb2->dst = sk_dst_get(sk_tun); | 1059 | skb2->dst = sk_dst_get(sk_tun); |
1054 | 1060 | ||
1055 | /* Queue the packet to IP for output */ | 1061 | /* Queue the packet to IP for output */ |