diff options
author | ae <ae@FreeBSD.org> | 2016-05-17 14:06:55 +0000 |
---|---|---|
committer | ae <ae@FreeBSD.org> | 2016-05-17 14:06:55 +0000 |
commit | d1f53cbfea64ab7b36ff11e5063b40d0363e3b38 (patch) | |
tree | da259d99717c7a68b79d37e43a5a91bd9c663ed2 /sys/netinet6 | |
parent | 3a15b2c2c2713c87d2ed5d1561dc65b983e8234c (diff) | |
download | FreeBSD-src-d1f53cbfea64ab7b36ff11e5063b40d0363e3b38.zip FreeBSD-src-d1f53cbfea64ab7b36ff11e5063b40d0363e3b38.tar.gz |
Call RO_RTFREE() when we have detected the change of destination
address, otherwise the old route will be used with new destination.
MFC after: 1 week
Diffstat (limited to 'sys/netinet6')
-rw-r--r-- | sys/netinet6/ip6_output.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/netinet6/ip6_output.c b/sys/netinet6/ip6_output.c index f64d305..8b1ce8c 100644 --- a/sys/netinet6/ip6_output.c +++ b/sys/netinet6/ip6_output.c @@ -826,8 +826,10 @@ again: #endif error = netisr_queue(NETISR_IPV6, m); goto done; - } else + } else { + RO_RTFREE(ro); needfiblookup = 1; /* Redo the routing table lookup. */ + } } /* See if fib was changed by packet filter. */ if (fibnum != M_GETFIB(m)) { |