linux/tools/testing/selftests/net
Florian Westphal 769a807d0b xfrm: policy: avoid warning splat when merging nodes
syzbot reported a splat:
 xfrm_policy_inexact_list_reinsert+0x625/0x6e0 net/xfrm/xfrm_policy.c:877
 CPU: 1 PID: 6756 Comm: syz-executor.1 Not tainted 5.3.0-rc2+ #57
 Call Trace:
  xfrm_policy_inexact_node_reinsert net/xfrm/xfrm_policy.c:922 [inline]
  xfrm_policy_inexact_node_merge net/xfrm/xfrm_policy.c:958 [inline]
  xfrm_policy_inexact_insert_node+0x537/0xb50 net/xfrm/xfrm_policy.c:1023
  xfrm_policy_inexact_alloc_chain+0x62b/0xbd0 net/xfrm/xfrm_policy.c:1139
  xfrm_policy_inexact_insert+0xe8/0x1540 net/xfrm/xfrm_policy.c:1182
  xfrm_policy_insert+0xdf/0xce0 net/xfrm/xfrm_policy.c:1574
  xfrm_add_policy+0x4cf/0x9b0 net/xfrm/xfrm_user.c:1670
  xfrm_user_rcv_msg+0x46b/0x720 net/xfrm/xfrm_user.c:2676
  netlink_rcv_skb+0x1f0/0x460 net/netlink/af_netlink.c:2477
  xfrm_netlink_rcv+0x74/0x90 net/xfrm/xfrm_user.c:2684
  netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline]
  netlink_unicast+0x809/0x9a0 net/netlink/af_netlink.c:1328
  netlink_sendmsg+0xa70/0xd30 net/netlink/af_netlink.c:1917
  sock_sendmsg_nosec net/socket.c:637 [inline]
  sock_sendmsg net/socket.c:657 [inline]

There is no reproducer, however, the warning can be reproduced
by adding rules with ever smaller prefixes.

The sanity check ("does the policy match the node") uses the prefix value
of the node before its updated to the smaller value.

To fix this, update the prefix earlier.  The bug has no impact on tree
correctness, this is only to prevent a false warning.

Reported-by: syzbot+8cc27ace5f6972910b31@syzkaller.appspotmail.com
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
2019-08-20 08:09:42 +02:00
..
forwarding selftests: forwarding: Test multipath hashing on inner IP pkts for GRE tunnel 2019-07-08 16:37:29 -07:00
.gitignore selftests/net: add TFO key rotation selftest 2019-05-30 13:41:26 -07:00
config Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-07-08 19:48:57 -07:00
fib_nexthop_multiprefix.sh selftests: Add test with multiple prefixes using single nexthop 2019-06-10 10:44:57 -07:00
fib_nexthops.sh selftests: Add test cases for nexthop objects 2019-06-02 13:06:14 -07: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 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-04-17 11:26:25 -07:00
fib-onlink-tests.sh selftests: fib-onlink: Make quiet by default 2019-05-22 17:50:24 -07: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_mgr.c selftests/net: ipv6 flowlabel 2019-05-28 17:18:53 -07: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
Makefile blackhole_dev: add a selftest 2019-07-01 19:34:46 -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
pmtu.sh selftests: pmtu: Make list_flush_ipv6_exception test more demanding 2019-06-24 10:18:49 -07: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: reuseport_addr_any: silence clang warning 2018-12-20 19:26:52 -08: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_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_bpf.c bpf: do not blindly change rlimit in reuseport net selftest 2018-10-08 10:30:55 +02:00
reuseport_dualstack.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01: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: SO_TXTIME with ETF and FQ 2019-05-24 13:34:40 -07:00
so_txtime.sh selftests/net: SO_TXTIME with ETF and FQ 2019-05-24 13:34:40 -07: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: add TFO key rotation selftest 2019-05-30 13:41:26 -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/tls: add test for poll() with data in TLS ULP 2019-07-07 14:11:45 -07:00
txring_overwrite.c selftests: txring_overwrite: fix incorrect test of mmap() return value 2019-07-08 15:39:38 -07:00
udpgro_bench.sh selftests: add functionals test for UDP GRO 2018-11-07 16:23:05 -08:00
udpgro.sh selftests: fixes for UDP GRO 2019-03-01 11:24:00 -08:00
udpgso_bench_rx.c selftests: fixes for UDP GRO 2019-03-01 11:24:00 -08:00
udpgso_bench_tx.c selftests/net: make udpgso_bench skip unsupported testcases 2019-06-19 17:33:47 -04:00
udpgso_bench.sh selftests/net: make udpgso_bench skip unsupported testcases 2019-06-19 17:33:47 -04:00
udpgso.c selftest/net: Remove duplicate header 2019-03-04 11:35:51 -08:00
udpgso.sh selftests: udp gso with corking 2018-04-26 15:09:52 -04:00
xfrm_policy.sh xfrm: policy: avoid warning splat when merging nodes 2019-08-20 08:09:42 +02:00