From: Joanne Koong <joannelkoong@xxxxxxxxx> As syzbot noted [1], there is an inconsistency in the bhash2 table in the case where a socket's rcv saddr changes after it is binded. (For more details, please see the commit message of the first patch) This patchset fixes that and adds a test that triggers the case where the sk's rcv saddr changes. The subsequent listen() call should succeed. [1] https://lore.kernel.org/netdev/0000000000003f33bc05dfaf44fe@xxxxxxxxxx/ Joanne Koong (2): net: Update bhash2 when socket's rcv saddr changes selftests/net: Add sk_bind_sendto_listen test include/net/inet_hashtables.h | 6 +- include/net/ipv6.h | 2 +- net/dccp/ipv4.c | 10 ++- net/dccp/ipv6.c | 4 +- net/ipv4/af_inet.c | 7 +- net/ipv4/inet_hashtables.c | 69 ++++++++++++++-- net/ipv4/tcp_ipv4.c | 8 +- net/ipv6/inet6_hashtables.c | 4 +- net/ipv6/tcp_ipv6.c | 4 +- tools/testing/selftests/net/.gitignore | 1 + tools/testing/selftests/net/Makefile | 1 + .../selftests/net/sk_bind_sendto_listen.c | 82 +++++++++++++++++++ 12 files changed, 180 insertions(+), 18 deletions(-) create mode 100644 tools/testing/selftests/net/sk_bind_sendto_listen.c -- 2.30.2