summaryrefslogtreecommitdiffstats
path: root/src/lib/dhcpsrv/addr_utilities.cc
diff options
context:
space:
mode:
authorMarcin Siodelski <marcin@isc.org>2012-12-14 19:46:24 +0100
committerMarcin Siodelski <marcin@isc.org>2012-12-14 19:46:24 +0100
commited8a874e740a95f78eba3f4a133b83794490dea7 (patch)
tree12375d7724302bdf4680e38ab200a5d71825ff66 /src/lib/dhcpsrv/addr_utilities.cc
parent[2549] Check address type in some option pack() methods. (diff)
downloadkea-ed8a874e740a95f78eba3f4a133b83794490dea7.tar.xz
kea-ed8a874e740a95f78eba3f4a133b83794490dea7.zip
[2549] Changes as a result of the code review.
Diffstat (limited to 'src/lib/dhcpsrv/addr_utilities.cc')
-rw-r--r--src/lib/dhcpsrv/addr_utilities.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/dhcpsrv/addr_utilities.cc b/src/lib/dhcpsrv/addr_utilities.cc
index 24a0633f4a..98fbeb93d0 100644
--- a/src/lib/dhcpsrv/addr_utilities.cc
+++ b/src/lib/dhcpsrv/addr_utilities.cc
@@ -53,8 +53,11 @@ isc::asiolink::IOAddress firstAddrInPrefix6(const isc::asiolink::IOAddress& pref
}
// First we copy the whole address as 16 bytes.
+ // We don't check that it is a valid IPv6 address and thus has
+ // the required length because it is already checked by
+ // the calling function.
uint8_t packed[V6ADDRESS_LEN];
- memcpy(packed, &prefix.toBytes()[0], 16);
+ memcpy(packed, &prefix.toBytes()[0], V6ADDRESS_LEN);
// If the length is divisible by 8, it is simple. We just zero out the host
// part. Otherwise we need to handle the byte that has to be partially
@@ -95,6 +98,9 @@ isc::asiolink::IOAddress firstAddrInPrefix4(const isc::asiolink::IOAddress& pref
isc_throw(isc::BadValue, "Too large netmask. 0..32 is allowed in IPv4");
}
+ // We don't check that it is a valid IPv4 address and thus has
+ // a required length of 4 bytes because it has been already
+ // checked by the calling function.
uint32_t addr = prefix;
return (IOAddress(addr & (~bitMask4[len])));
}