summaryrefslogtreecommitdiffstats
path: root/sys/netinet6/ip6_input.c
diff options
context:
space:
mode:
authormpi <mpi@openbsd.org>2016-04-19 08:23:13 +0000
committermpi <mpi@openbsd.org>2016-04-19 08:23:13 +0000
commit88e2a5ed751d09ef2964f579da5571ea2fd65fcb (patch)
treea59735c460d52c926b924b34acfcb9fc90ce7bcb /sys/netinet6/ip6_input.c
parentIn pod2man(1), enable UTF-8 output by default and provide a --no-utf8 (diff)
downloadwireguard-openbsd-88e2a5ed751d09ef2964f579da5571ea2fd65fcb.tar.xz
wireguard-openbsd-88e2a5ed751d09ef2964f579da5571ea2fd65fcb.zip
Instead of freeing a cached RTF_MPATH route after using it, free it
when the next packet needs to be forwarded, just like if the route was invalid. ok mikeb@, claudio@
Diffstat (limited to 'sys/netinet6/ip6_input.c')
-rw-r--r--sys/netinet6/ip6_input.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netinet6/ip6_input.c b/sys/netinet6/ip6_input.c
index 7a0441a036b..e9d318cf489 100644
--- a/sys/netinet6/ip6_input.c
+++ b/sys/netinet6/ip6_input.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ip6_input.c,v 1.157 2016/04/11 13:02:35 mpi Exp $ */
+/* $OpenBSD: ip6_input.c,v 1.158 2016/04/19 08:23:13 mpi Exp $ */
/* $KAME: ip6_input.c,v 1.188 2001/03/29 05:34:31 itojun Exp $ */
/*
@@ -422,6 +422,7 @@ ip6_input(struct mbuf *m)
* Unicast check
*/
if (rtisvalid(ip6_forward_rt.ro_rt) &&
+ !ISSET(ip6_forward_rt.ro_rt->rt_flags, RTF_MPATH) &&
IN6_ARE_ADDR_EQUAL(&ip6->ip6_dst,
&ip6_forward_rt.ro_dst.sin6_addr) &&
rtableid == ip6_forward_rt.ro_tableid)