Re: git: 71867653008c - main - udp: improve handling of cached route

From: Mark Johnston <markj_at_freebsd.org>
Date: Mon, 29 Jul 2024 20:31:46 UTC
On Sun, Jul 28, 2024 at 09:41:56PM +0000, Michael Tuexen wrote:
> The branch main has been updated by tuexen:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=71867653008ce17a66a9c935e9dc29c1320bf48b
> 
> commit 71867653008ce17a66a9c935e9dc29c1320bf48b
> Author:     Michael Tuexen <tuexen@FreeBSD.org>
> AuthorDate: 2024-07-28 21:25:22 +0000
> Commit:     Michael Tuexen <tuexen@FreeBSD.org>
> CommitDate: 2024-07-28 21:36:48 +0000
> 
>     udp: improve handling of cached route
>     
>     The inp_route pointer should only be provided to the network
>     layer, when no destination address is provided. This is only
>     one of the conditions, where a write lock is needed.
>     If, for example, the route is also cached, when the socket is
>     unbound, problems show up, when the sendto is called, then
>     connect and finally send, when the route for the addresses
>     provided in the sendto and connect call use different outgoing
>     interfaces.
>     While there, clearly document why the write lock is taken.
>     
>     Reported by:            syzbot+59122d2e848087d3355a@syzkaller.appspotmail.com
>     Reviewed by:            Peter Lei, glebius
>     MFC after:              3 days
>     Sponsored by:           Netflix, Inc.
>     Differential Revision:  https://reviews.freebsd.org/D46056

Hi Michael,

After this commit, two regression tests started failing:
https://ci.freebsd.org/job/FreeBSD-main-amd64-test/25371/testReport/sys.netinet6.test_ip6_output/py/TestIP6Output__test_output6_nhop/
https://ci.freebsd.org/job/FreeBSD-main-amd64-test/25371/testReport/sys.netinet6.test_ip6_output/py/TestIP6OutputNhopLL__test_output6_nhop_linklocal/

I verified that they pass again after reverting this commit.  Could you
please take a look?