summaryrefslogtreecommitdiff
path: root/sys/netinet
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2019-06-13 08:15:27 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2019-06-13 08:15:27 +0000
commitc167e950f00c0bd97b840b9f78f944856d539dc6 (patch)
tree1c38df9b964d7388bafde5e8a163b9010f3bd4a1 /sys/netinet
parent5e5e9391bb65e33e082e06c79c2cd84d812e8a72 (diff)
In arp_rtrequest and nd6_rtrequest return early if the RTF_MPLS flag is
set. These mpls routes use the rt_llinfo structure to store the MPLS label and would confuse the arp and nd6 code. OK bluhm@ anton@ Reported-by: syzbot+927e93a362f3ae33dd9c@syzkaller.appspotmail.com
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/if_ether.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c
index 130d107e820..3e30983e57c 100644
--- a/sys/netinet/if_ether.c
+++ b/sys/netinet/if_ether.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ether.c,v 1.238 2019/01/20 23:43:13 claudio Exp $ */
+/* $OpenBSD: if_ether.c,v 1.239 2019/06/13 08:15:26 claudio Exp $ */
/* $NetBSD: if_ether.c,v 1.31 1996/05/11 12:59:58 mycroft Exp $ */
/*
@@ -143,7 +143,8 @@ arp_rtrequest(struct ifnet *ifp, int req, struct rtentry *rt)
timeout_add_sec(&arptimer_to, arpt_prune);
}
- if (ISSET(rt->rt_flags, RTF_GATEWAY|RTF_BROADCAST|RTF_MULTICAST))
+ if (ISSET(rt->rt_flags,
+ RTF_GATEWAY|RTF_BROADCAST|RTF_MULTICAST|RTF_MPLS))
return;
switch (req) {