summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
authoritojun <itojun@openbsd.org>2004-02-23 05:06:41 +0000
committeritojun <itojun@openbsd.org>2004-02-23 05:06:41 +0000
commit0520b6440465f029d61931fe848306e52bb456fc (patch)
tree426ce342dd30ec171b56e17601c89840c003e144 /sys/netinet6
parentImproved boot args parsing. also assume that a bootfile of (hd0)... (diff)
downloadwireguard-openbsd-0520b6440465f029d61931fe848306e52bb456fc.tar.xz
wireguard-openbsd-0520b6440465f029d61931fe848306e52bb456fc.zip
avoid touching out-of-bound memory if len == 128.
Ted Unangst via Colin Percival
Diffstat (limited to 'sys/netinet6')
-rw-r--r--sys/netinet6/in6.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c
index b2e52435a55..74244f1efff 100644
--- a/sys/netinet6/in6.c
+++ b/sys/netinet6/in6.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: in6.c,v 1.53 2004/01/13 06:28:16 mcbride Exp $ */
+/* $OpenBSD: in6.c,v 1.54 2004/02/23 05:06:41 itojun Exp $ */
/* $KAME: in6.c,v 1.198 2001/07/18 09:12:38 itojun Exp $ */
/*
@@ -2203,7 +2203,8 @@ in6_are_prefix_equal(p1, p2, len)
if (bcmp(&p1->s6_addr, &p2->s6_addr, bytelen))
return (0);
- if (p1->s6_addr[bytelen] >> (8 - bitlen) !=
+ if (bitlen != 0 &&
+ p1->s6_addr[bytelen] >> (8 - bitlen) !=
p2->s6_addr[bytelen] >> (8 - bitlen))
return (0);