summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorclaudio <claudio@openbsd.org>2017-03-28 05:04:09 +0000
committerclaudio <claudio@openbsd.org>2017-03-28 05:04:09 +0000
commitf1385c8f4f9b9e193ff65d9f2039862d3e230a45 (patch)
tree0fea0f734b024fb7a03c00966a3afada644c4b82
parentAdd quirk for MacBook Pro 5,5. From Manav Rathi <mnvrth at gmail.com>. (diff)
downloadwireguard-openbsd-f1385c8f4f9b9e193ff65d9f2039862d3e230a45.tar.xz
wireguard-openbsd-f1385c8f4f9b9e193ff65d9f2039862d3e230a45.zip
For IPv6 pass prefix not nexthop as network for connected nexthops back to
the RDE so that the code actually works. Problem found and reported by Pier Carlo Chiodi (pierky at pierky com) OK deraadt@
-rw-r--r--usr.sbin/bgpd/kroute.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/usr.sbin/bgpd/kroute.c b/usr.sbin/bgpd/kroute.c
index b4edd7ffe24..36926dd2fd5 100644
--- a/usr.sbin/bgpd/kroute.c
+++ b/usr.sbin/bgpd/kroute.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kroute.c,v 1.211 2017/01/24 04:22:42 benno Exp $ */
+/* $OpenBSD: kroute.c,v 1.212 2017/03/28 05:04:09 claudio Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -2200,9 +2200,10 @@ knexthop_send_update(struct knexthop_node *kn)
kr = kn->kroute;
n.valid = kroute_validate(&kr->r);
n.connected = kr->r.flags & F_CONNECTED;
- if ((n.gateway.v4.s_addr =
- kr->r.nexthop.s_addr) != 0)
+ if (kr->r.nexthop.s_addr != 0) {
n.gateway.aid = AID_INET;
+ n.gateway.v4.s_addr = kr->r.nexthop.s_addr;
+ }
if (n.connected) {
n.net.aid = AID_INET;
n.net.v4.s_addr = kr->r.prefix.s_addr;
@@ -2221,7 +2222,7 @@ knexthop_send_update(struct knexthop_node *kn)
}
if (n.connected) {
n.net.aid = AID_INET6;
- memcpy(&n.net.v6, &kr6->r.nexthop,
+ memcpy(&n.net.v6, &kr6->r.prefix,
sizeof(struct in6_addr));
n.netlen = kr6->r.prefixlen;
}