diff options
Diffstat (limited to 'net/ipv6/xfrm6_output.c')
-rw-r--r-- | net/ipv6/xfrm6_output.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv6/xfrm6_output.c b/net/ipv6/xfrm6_output.c index 5959ce9620eb..6a74080005cf 100644 --- a/net/ipv6/xfrm6_output.c +++ b/net/ipv6/xfrm6_output.c | |||
@@ -170,9 +170,11 @@ static int __xfrm6_output(struct net *net, struct sock *sk, struct sk_buff *skb) | |||
170 | 170 | ||
171 | if (toobig && xfrm6_local_dontfrag(skb)) { | 171 | if (toobig && xfrm6_local_dontfrag(skb)) { |
172 | xfrm6_local_rxpmtu(skb, mtu); | 172 | xfrm6_local_rxpmtu(skb, mtu); |
173 | kfree_skb(skb); | ||
173 | return -EMSGSIZE; | 174 | return -EMSGSIZE; |
174 | } else if (!skb->ignore_df && toobig && skb->sk) { | 175 | } else if (!skb->ignore_df && toobig && skb->sk) { |
175 | xfrm_local_error(skb, mtu); | 176 | xfrm_local_error(skb, mtu); |
177 | kfree_skb(skb); | ||
176 | return -EMSGSIZE; | 178 | return -EMSGSIZE; |
177 | } | 179 | } |
178 | 180 | ||