1
0
Fork 0
alistair23-linux/tools/testing/selftests/net
David Ahern 75270f8196 ipv6: fib6_select_path can not use out path for nexthop objects
[ Upstream commit 34fe5a1cf9 ]

Brian reported a crash in IPv6 code when using rpfilter with a setup
running FRR and external nexthop objects. The root cause of the crash
is fib6_select_path setting fib6_nh in the result to NULL because of
an improper check for nexthop objects.

More specifically, rpfilter invokes ip6_route_lookup with flowi6_oif
set causing fib6_select_path to be called with have_oif_match set.
fib6_select_path has early check on have_oif_match and jumps to the
out label which presumes a builtin fib6_nh. This path is invalid for
nexthop objects; for external nexthops fib6_select_path needs to just
return if the fib6_nh has already been set in the result otherwise it
returns after the call to nexthop_path_fib6_result. Update the check
on have_oif_match to not bail on external nexthops.

Update selftests for this problem.

Fixes: f88d8ea67f ("ipv6: Plumb support for nexthop object in a fib6_info")
Reported-by: Brian Rak <brak@choopa.com>
Signed-off-by: David Ahern <dsahern@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-22 09:32:47 +02:00
..
forwarding selftests: forwarding: vxlan_bridge_1d: use more proper tos value 2020-03-12 13:00:17 +01:00
.gitignore selftests/net: add nettest to .gitignore 2019-10-04 18:36:34 -07:00
Makefile selftests: Add l2tp tests 2019-08-08 18:08:09 -07:00
config Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-07-08 19:48:57 -07:00
fcnal-test.sh selftests: Fix detection of nettest command in fcnal-test 2019-08-09 19:54:14 -07:00
fib-onlink-tests.sh selftests: fib-onlink: Make quiet by default 2019-05-22 17:50:24 -07:00
fib_nexthop_multiprefix.sh selftests: Update fib_nexthop_multiprefix to handle missing ping6 2019-09-20 18:18:16 -07:00
fib_nexthops.sh ipv6: fib6_select_path can not use out path for nexthop objects 2020-07-22 09:32:47 +02:00
fib_rule_tests.sh selftests: fib_rule_tests: use pre-defined DEV_ADDR 2019-05-21 13:44:17 -07:00
fib_tests.sh selftests: Fix suppress test in fib_tests.sh 2020-04-29 16:33:09 +02:00
icmp_redirect.sh selftests: icmp_redirect: Add support for routing via nexthop objects 2019-06-10 10:44:57 -07:00
in_netns.sh selftests/net: fix in_netns.sh script 2018-03-07 12:26:05 -05:00
ip6_gre_headroom.sh selftests: net: Test headroom handling of ip6_gre devices 2018-06-26 23:03:01 +09:00
ip_defrag.c selftests: net: ip_defrag: cover new IPv6 defrag behavior 2019-01-25 21:37:11 -08:00
ip_defrag.sh selftests: net: ip_defrag: cover new IPv6 defrag behavior 2019-01-25 21:37:11 -08:00
ipv6_flowlabel.c selftests/net: ipv6 flowlabel 2019-05-28 17:18:53 -07:00
ipv6_flowlabel.sh selftests/net: ipv6 flowlabel 2019-05-28 17:18:53 -07:00
ipv6_flowlabel_mgr.c selftests/net: ipv6 flowlabel 2019-05-28 17:18:53 -07:00
l2tp.sh selftests: Make l2tp.sh executable 2019-10-22 14:01:35 -07:00
msg_zerocopy.c selftests: extend zerocopy tests to udp 2018-12-03 15:58:32 -08:00
msg_zerocopy.sh selftests: extend zerocopy tests to udp 2018-12-03 15:58:32 -08:00
netdevice.sh selftests: net: return Kselftest Skip code for skipped tests 2018-05-30 15:29:06 -06:00
nettest.c selftests: Fix get_ifidx and callers in nettest.c 2019-08-16 15:25:34 -07:00
pmtu.sh selftests: pmtu: fix init mtu value in description 2020-01-12 12:21:45 +01:00
psock_fanout.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 222 2019-05-30 11:29:55 -07:00
psock_lib.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 222 2019-05-30 11:29:55 -07:00
psock_snd.c selftests/net: add packet socket packet_snd test 2018-06-04 09:50:01 -04:00
psock_snd.sh selftests/net: add packet socket packet_snd test 2018-06-04 09:50:01 -04:00
psock_tpacket.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 222 2019-05-30 11:29:55 -07:00
reuseaddr_conflict.c selftest: add a reuseaddr test 2017-09-19 14:09:26 -06:00
reuseport_addr_any.c selftests/net: add definition for SOL_DCCP to fix compilation errors for old libc 2020-04-17 10:49:59 +02:00
reuseport_addr_any.sh selftests: net: test that listening sockets match on address properly 2018-12-14 15:55:20 -08:00
reuseport_bpf.c bpf: do not blindly change rlimit in reuseport net selftest 2018-10-08 10:30:55 +02:00
reuseport_bpf_cpu.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
reuseport_bpf_numa.c selftests: net: reuseport_bpf_numa: don't fail if no numa support 2018-05-23 12:21:02 +02:00
reuseport_dualstack.c selftests: net: reuseport_dualstack: fix uninitalized parameter 2019-11-01 15:11:02 -07:00
route_localnet.sh selftests: add route_localnet test script 2019-06-24 09:02:47 -07:00
rtnetlink.sh selftests: rtnetlink: skip ipsec offload tests if netdevsim isn't present 2019-06-29 12:18:52 -07:00
run_afpackettests selftests/net: skip psock_tpacket test if KALLSYMS was not enabled 2019-07-02 20:17:49 -04:00
run_netsocktests selftests/net: correct the return value for run_netsocktests 2019-04-19 14:39:51 -07:00
so_txtime.c selftests/net: report etf errors correctly 2020-06-30 15:36:58 -04:00
so_txtime.sh selftests/net: make so_txtime more robust to timer variance 2020-02-24 08:36:36 +01:00
socket.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tcp_fastopen_backup_key.c selftests/net: fix warnings in TFO key rotation selftest 2019-06-16 14:27:14 -07:00
tcp_fastopen_backup_key.sh selftests: net: tcp_fastopen_backup_key.sh: fix shellcheck issue 2019-08-15 11:34:32 -07:00
tcp_inq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 253 2019-06-05 17:30:27 +02:00
tcp_mmap.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 222 2019-05-30 11:29:55 -07:00
test_blackhole_dev.sh blackhole_dev: add a selftest 2019-07-01 19:34:46 -07:00
test_bpf.sh License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
test_vxlan_fdb_changelink.sh selftests: net: Add test_vxlan_fdb_changelink.sh 2018-12-18 21:18:26 -08:00
test_vxlan_under_vrf.sh test/net: Add script for VXLAN underlay in a VRF 2018-12-03 14:16:01 -08:00
tls.c selftests: net: tls: remove recv_rcvbuf test 2019-12-31 16:45:58 +01:00
txring_overwrite.c selftests: txring_overwrite: fix incorrect test of mmap() return value 2019-07-08 15:39:38 -07:00
udpgro.sh selftests: fixes for UDP GRO 2019-03-01 11:24:00 -08:00
udpgro_bench.sh selftests: add functionals test for UDP GRO 2018-11-07 16:23:05 -08:00
udpgso.c selftests: net: Fix printf format warnings on arm 2019-12-31 16:45:09 +01:00
udpgso.sh selftests: udp gso with corking 2018-04-26 15:09:52 -04:00
udpgso_bench.sh selftests/net: make udpgso_bench skip unsupported testcases 2019-06-19 17:33:47 -04:00
udpgso_bench_rx.c selftests: fixes for UDP GRO 2019-03-01 11:24:00 -08:00
udpgso_bench_tx.c selftests: net: Fix printf format warnings on arm 2019-12-31 16:45:09 +01:00
xfrm_policy.sh xfrm: policy: avoid warning splat when merging nodes 2019-08-20 08:09:42 +02:00