Roland Dreier ec831ea72e 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>
2011-01-31 13:16:00 -08:00
..
2011-01-24 13:16:16 -08:00
2010-09-23 14:33:39 -07:00
2010-10-25 13:09:45 -07:00
2010-11-18 11:02:23 -08:00
2010-12-12 22:08:17 -08:00
2010-06-28 23:24:29 -07:00
2010-02-22 16:20:22 -08:00
2009-03-02 03:00:15 -08:00
2009-03-02 03:00:15 -08:00
2009-05-25 22:44:59 -07:00
2010-09-23 14:33:39 -07:00
2010-10-27 11:37:32 -07:00
2010-07-12 12:57:54 -07:00