Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f4e53e29 authored by Steffen Klassert's avatar Steffen Klassert Committed by David S. Miller
Browse files

ipv6: Don't send packet to big messages to self



Calling icmpv6_send() on a local message size error leads to an
incorrect update of the path mtu in the case when IPsec is used.
So use ipv6_local_error() instead to notify the socket about the
error.

Reported-by: default avatarJiri Bohac <jbohac@suse.cz>
Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent efc496eb
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -242,9 +242,8 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,
			       dst->dev, dst_output);
	}

	net_dbg_ratelimited("IPv6: sending pkt_too_big to self\n");
	skb->dev = dst->dev;
	icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
	ipv6_local_error(sk, EMSGSIZE, fl6, mtu);
	IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), IPSTATS_MIB_FRAGFAILS);
	kfree_skb(skb);
	return -EMSGSIZE;