BIND 10 trac3279, updated. 6d5522801eb392e991a4ecfc67be59e0ea7763b6 [3279] Addressed review comments.
BIND 10 source code commits
bind10-changes at lists.isc.org
Tue Jan 14 15:28:01 UTC 2014
The branch, trac3279 has been updated
via 6d5522801eb392e991a4ecfc67be59e0ea7763b6 (commit)
from c716f4335d644744d16fa624e2b14dcf7bf217a4 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 6d5522801eb392e991a4ecfc67be59e0ea7763b6
Author: Marcin Siodelski <marcin at isc.org>
Date: Tue Jan 14 16:27:53 2014 +0100
[3279] Addressed review comments.
-----------------------------------------------------------------------
Summary of changes:
src/bin/dhcp4/dhcp4_srv.cc | 14 ++++++++++++++
1 file changed, 14 insertions(+)
-----------------------------------------------------------------------
diff --git a/src/bin/dhcp4/dhcp4_srv.cc b/src/bin/dhcp4/dhcp4_srv.cc
index 864e6ca..9fcbd4e 100644
--- a/src/bin/dhcp4/dhcp4_srv.cc
+++ b/src/bin/dhcp4/dhcp4_srv.cc
@@ -1560,10 +1560,24 @@ Dhcpv4Srv::acceptServerId(const Pkt4Ptr& pkt) const {
}
Option4AddrLst::AddressContainer addrs = option_addrs->getAddresses();
+ // The server identifier option should carry exactly one IPv4 address.
+ // This option is encapsulated by the class which accepts a list of
+ // IPv4 addresses. So, there is a potential risk that the client has sent
+ // a server identifier option with multiple addresses and it has been
+ // parsed by the server. Here we are filtering out such malformed
+ // messages here.
if (addrs.size() != 1) {
return (false);
}
+ // This function iterates over all interfaces on which the
+ // server is listening to find the one which has a socket bound
+ // to the address carried in the server identifier option.
+ // This has some performance implications. However, given that
+ // typically there will be just a few active interfaces the
+ // performance hit should be acceptable. If it turns out to
+ // be significant, we will have to cache server identifiers
+ // when sockets are opened.
return (IfaceMgr::instance().hasOpenSocket(addrs[0]));
}
More information about the bind10-changes
mailing list