On Mon, Aug 12, 2019 at 10:32:13AM +0200, Florian Westphal wrote:
> 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: [email protected]
> Signed-off-by: Florian Westphal <[email protected]>
Applied, thanks Florian!