summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
authorae <ae@FreeBSD.org>2016-05-17 14:06:55 +0000
committerae <ae@FreeBSD.org>2016-05-17 14:06:55 +0000
commitd1f53cbfea64ab7b36ff11e5063b40d0363e3b38 (patch)
treeda259d99717c7a68b79d37e43a5a91bd9c663ed2 /sys/netinet6
parent3a15b2c2c2713c87d2ed5d1561dc65b983e8234c (diff)
downloadFreeBSD-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.c4
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)) {
OpenPOWER on IntegriCloud