diff options
author | Erwin Lansing <erwin@FreeBSD.org> | 2014-12-15 12:14:41 +0000 |
---|---|---|
committer | Erwin Lansing <erwin@FreeBSD.org> | 2014-12-15 12:14:41 +0000 |
commit | 4c9547cd12b5bb569f10b368eb6bb04d897d596f (patch) | |
tree | 025b1191fa4f9c03bf5345071dd2658f5d240b69 /lib/isc/netaddr.c | |
parent | 989b3b2d6068ce5b525479b7754977baf6364a7d (diff) |
Notes
Diffstat (limited to 'lib/isc/netaddr.c')
-rw-r--r-- | lib/isc/netaddr.c | 3 |
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); } |