diff options
author | Marcin Siodelski <marcin@isc.org> | 2012-12-14 19:46:24 +0100 |
---|---|---|
committer | Marcin Siodelski <marcin@isc.org> | 2012-12-14 19:46:24 +0100 |
commit | ed8a874e740a95f78eba3f4a133b83794490dea7 (patch) | |
tree | 12375d7724302bdf4680e38ab200a5d71825ff66 /src/lib/dhcpsrv/addr_utilities.cc | |
parent | [2549] Check address type in some option pack() methods. (diff) | |
download | kea-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.cc | 8 |
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]))); } |