summaryrefslogtreecommitdiffstats
path: root/sys/netinet/udp_usrreq.c
diff options
context:
space:
mode:
authoritojun <itojun@openbsd.org>1999-12-17 22:47:04 +0000
committeritojun <itojun@openbsd.org>1999-12-17 22:47:04 +0000
commitea78222a2a115d74cde302be80e2f0fcc211b02f (patch)
treea3f03af6a668a91c6f7110181f1db111a5d25ac1 /sys/netinet/udp_usrreq.c
parentmore fixes from markus (diff)
downloadwireguard-openbsd-ea78222a2a115d74cde302be80e2f0fcc211b02f.tar.xz
wireguard-openbsd-ea78222a2a115d74cde302be80e2f0fcc211b02f.zip
do not accept IPv4 traffic by AF_INET6 socket. IPv4 mapped address is
bad for access controls. (quickhack fix, need sysctl/setsockopt knob to enable this functionality)
Diffstat (limited to 'sys/netinet/udp_usrreq.c')
-rw-r--r--sys/netinet/udp_usrreq.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c
index a2d2d5a17bd..f5eeb674080 100644
--- a/sys/netinet/udp_usrreq.c
+++ b/sys/netinet/udp_usrreq.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: udp_usrreq.c,v 1.30 1999/12/12 10:59:41 itojun Exp $ */
+/* $OpenBSD: udp_usrreq.c,v 1.31 1999/12/17 22:47:05 itojun Exp $ */
/* $NetBSD: udp_usrreq.c,v 1.28 1996/03/16 23:54:03 christos Exp $ */
/*
@@ -409,6 +409,11 @@ udp_input(m, va_alist)
if (inp->inp_laddr.s_addr !=
ip->ip_dst.s_addr)
continue;
+ } else {
+#ifdef INET6
+ if (inp->inp_flags & INP_IPV6)
+ continue; /*XXX*/
+#endif
}
#ifdef INET6
if (ipv6) {
@@ -424,6 +429,11 @@ udp_input(m, va_alist)
ip->ip_src.s_addr ||
inp->inp_fport != uh->uh_sport)
continue;
+ } else {
+#ifdef INET6
+ if (inp->inp_flags & INP_IPV6)
+ continue; /*XXX*/
+#endif
}
if (last != NULL) {