diff options
author | Thomas Markwalder <tmark@isc.org> | 2015-06-26 16:05:03 -0400 |
---|---|---|
committer | Thomas Markwalder <tmark@isc.org> | 2015-06-26 16:05:03 -0400 |
commit | 1aec5d9c96f60ed9046a43b44fcfdf0aac2e507f (patch) | |
tree | 0e272ded05f8b5ab92122f5ae5e6b95943fd8843 | |
parent | 277e01c43e192a304d2081ebb1d7254caf12088b (diff) | |
download | isc-dhcp-1aec5d9c96f60ed9046a43b44fcfdf0aac2e507f.tar.gz |
[v4_1_esv] Correctly handled v6 lease file entries that do not match to a pool
Merged in rt39314.
-rw-r--r-- | RELNOTES | 9 | ||||
-rw-r--r-- | server/confpars.c | 20 |
2 files changed, 19 insertions, 10 deletions
@@ -117,8 +117,15 @@ by Eric Young (eay@cryptsoft.com). lease file is corrupt in certain ways. [ISC-Bugs #39760] - Changes since 4.1-ESV-R11rc2 +- Corrected an issue in v6 lease file parsing. Prior to this, when encountering + a lease with an address for which no configured pool exists, the server was + declaring the lease file corrupt and incorrectly skipping over the subsequent + entry in the file. The server will now emit a log message indicating that + no pool was found for the address (or prefix) and correctly resume parsing + with the next entry in the lease file. + [ISC-Bugs #39314] + Changes since 4.1-ESV-R11rc2 - None Changes since 4.1-ESV-R11rc1 diff --git a/server/confpars.c b/server/confpars.c index cc95c6f4..f592a4e5 100644 --- a/server/confpars.c +++ b/server/confpars.c @@ -4495,9 +4495,10 @@ parse_ia_na_declaration(struct parse *cfile) { &iaaddr->addr) != ISC_R_SUCCESS) { inet_ntop(AF_INET6, &iaaddr->addr, addr_buf, sizeof(addr_buf)); - parse_warn(cfile, "no pool found for address %s", - addr_buf); - return; + log_error("No pool found for IA_NA address %s", + addr_buf); + iasubopt_dereference(&iaaddr, MDL); + continue; } /* remove old information */ @@ -4885,9 +4886,10 @@ parse_ia_ta_declaration(struct parse *cfile) { &iaaddr->addr) != ISC_R_SUCCESS) { inet_ntop(AF_INET6, &iaaddr->addr, addr_buf, sizeof(addr_buf)); - parse_warn(cfile, "no pool found for address %s", - addr_buf); - return; + log_error("No pool found for IA_TA address %s", + addr_buf); + iasubopt_dereference(&iaaddr, MDL); + continue; } /* remove old information */ @@ -5276,9 +5278,9 @@ parse_ia_pd_declaration(struct parse *cfile) { &iapref->addr) != ISC_R_SUCCESS) { inet_ntop(AF_INET6, &iapref->addr, addr_buf, sizeof(addr_buf)); - parse_warn(cfile, "no pool found for address %s", - addr_buf); - return; + log_error("No pool found for prefix %s", addr_buf); + iasubopt_dereference(&iapref, MDL); + continue; } /* remove old information */ |