diff options
author | Roland Dreier <roland@purestorage.com> | 2011-01-31 13:16:00 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-01-31 13:16:00 -0800 |
commit | ec831ea72ee5d7d473899e27a86bd659482c4d0d (patch) | |
tree | 9bce912eff9cc0aaeb1f47659e99f1d6c9951f80 /net/tipc | |
parent | c4c93106741bbf61ecd05a2a835af8e3bf31c1bd (diff) | |
download | op-kernel-dev-ec831ea72ee5d7d473899e27a86bd659482c4d0d.zip op-kernel-dev-ec831ea72ee5d7d473899e27a86bd659482c4d0d.tar.gz |
net: Add default_mtu() methods to blackhole dst_ops
When an IPSEC SA is still being set up, __xfrm_lookup() will return
-EREMOTE and so ip_route_output_flow() will return a blackhole route.
This can happen in a sndmsg call, and after d33e455337ea ("net: Abstract
default MTU metric calculation behind an accessor.") this leads to a
crash in ip_append_data() because the blackhole dst_ops have no
default_mtu() method and so dst_mtu() calls a NULL pointer.
Fix this by adding default_mtu() methods (that simply return 0, matching
the old behavior) to the blackhole dst_ops.
The IPv4 part of this patch fixes a crash that I saw when using an IPSEC
VPN; the IPv6 part is untested because I don't have an IPv6 VPN, but it
looks to be needed as well.
Signed-off-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc')
0 files changed, 0 insertions, 0 deletions