Changes since 4.1-ESV-R11
-- Delayed-ack now works properly with Failover. Prior to this, bind updates
- post startup were being queued but never delivered. Among other things, this
- was causing leases to not transition from expired or released to free.
- [ISC-Bugs #31474]
-
- The server now does a better check to see if it can allocate the memory
for large blocks of v4 leases and should provide a slightly better error
message. Note well: the server pre-allocates v4 addresses, if you use
of as a token.
[ISC-Bugs #39529]
+- Delayed-ack now works properly with Failover. Prior to this, bind updates
+ post startup were being queued but never delivered. Among other things, this
+ was causing leases to not transition from expired or released to free.
+ [ISC-Bugs #31474]
+
+- Clean up parsing of v6 lease files a bit to avoid infinite loops if the
+ lease file is corrupt in certain ways.
+ [ISC-Bugs #39760]
+
Changes since 4.1-ESV-R11rc2
- None
if (token == RBRACE) break;
switch(token) {
+ case END_OF_FILE:
+ /* We hit the end of file and don't know
+ * what parts of the lease we may be missing
+ * don't try to salvage the lease
+ */
+ parse_warn(cfile, "corrupt lease file; "
+ "unexpected end of file");
+ return;
+
/* Lease binding state. */
case BINDING:
token = next_token(&val, NULL, cfile);
if (token == RBRACE) break;
switch(token) {
+ case END_OF_FILE:
+ /* We hit the end of file and don't know
+ * what parts of the lease we may be missing
+ * don't try to salvage the lease
+ */
+ parse_warn(cfile, "corrupt lease file; "
+ "unexpected end of file");
+ return;
+
/* Lease binding state. */
case BINDING:
token = next_token(&val, NULL, cfile);
if (token == RBRACE) break;
switch(token) {
+ case END_OF_FILE:
+ /* We hit the end of file and don't know
+ * what parts of the lease we may be missing
+ * don't try to salvage the lease
+ */
+ parse_warn(cfile, "corrupt lease file; "
+ "unexpected end of file");
+ return;
+
/* Prefix binding state. */
case BINDING:
token = next_token(&val, NULL, cfile);