summaryrefslogtreecommitdiff
path: root/lib/isc/netaddr.c
diff options
context:
space:
mode:
authorErwin Lansing <erwin@FreeBSD.org>2014-12-15 12:14:41 +0000
committerErwin Lansing <erwin@FreeBSD.org>2014-12-15 12:14:41 +0000
commit4c9547cd12b5bb569f10b368eb6bb04d897d596f (patch)
tree025b1191fa4f9c03bf5345071dd2658f5d240b69 /lib/isc/netaddr.c
parent989b3b2d6068ce5b525479b7754977baf6364a7d (diff)
Notes
Diffstat (limited to 'lib/isc/netaddr.c')
-rw-r--r--lib/isc/netaddr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/isc/netaddr.c b/lib/isc/netaddr.c
index 0940df1713e5..dcbfba42eae8 100644
--- a/lib/isc/netaddr.c
+++ b/lib/isc/netaddr.c
@@ -235,11 +235,12 @@ isc_netaddr_prefixok(const isc_netaddr_t *na, unsigned int prefixlen) {
nbytes = prefixlen / 8;
nbits = prefixlen % 8;
if (nbits != 0) {
+ INSIST(nbytes < ipbytes);
if ((p[nbytes] & (0xff>>nbits)) != 0U)
return (ISC_R_FAILURE);
nbytes++;
}
- if (memcmp(p + nbytes, zeros, ipbytes - nbytes) != 0)
+ if (nbytes < ipbytes && memcmp(p + nbytes, zeros, ipbytes - nbytes) != 0)
return (ISC_R_FAILURE);
return (ISC_R_SUCCESS);
}