mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-04 05:58:57 +00:00
This fixes the issue with the "randomly changing" default
route. What it was is there are two places in ip_output.c where we do a goto again. One place was fine, it copies out the new address and then resets dst = ro->rt_dst; But the other place does *not* do that, which means earlier when we found the gateway, we have dst pointing there aka dst = ro->rt_gateway is done.. then we do a goto again.. bam now we clobber the default route. The fix is just to move the again so we are always doing dst = &ro->rt_dst; in the again loop. PR: 174749,157796 MFC after: 1 week
This commit is contained in:
parent
3a74eaf28f
commit
0be23a54cf
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=249848
@ -196,8 +196,8 @@ ip_output(struct mbuf *m, struct mbuf *opt, struct route *ro, int flags,
|
||||
hlen = ip->ip_hl << 2;
|
||||
}
|
||||
|
||||
dst = (struct sockaddr_in *)&ro->ro_dst;
|
||||
again:
|
||||
dst = (struct sockaddr_in *)&ro->ro_dst;
|
||||
ia = NULL;
|
||||
/*
|
||||
* If there is a cached route,
|
||||
|
Loading…
Reference in New Issue
Block a user