mirror of
https://gitlab.isc.org/isc-projects/dhcp
synced 2025-09-03 15:56:00 +00:00
DNS Update fix. A misconfigured server could crash during DNS update
processing if the configuration included overlapping pools or multiple fixed-address entries for a single address. This issue affected both IPv4 and IPv6. The fix allows a server to detect such conditions, provides the user with extra information and recommended steps to fix the problem. If the user enables the appropriate option in site.h then server will be terminated
This commit is contained in:
@@ -1417,14 +1417,24 @@ print_dns_status (int direction,
|
||||
}
|
||||
|
||||
en = " dhcid: ";
|
||||
if (s + strlen(en) + ddns_cb->dhcid.len < end) {
|
||||
strcpy(s, en);
|
||||
s += strlen(s);
|
||||
strncpy(s, (char *)ddns_cb->dhcid.data + 1,
|
||||
ddns_cb->dhcid.len - 1);
|
||||
s += strlen(s);
|
||||
if (ddns_cb->dhcid.len > 0) {
|
||||
if (s + strlen(en) + ddns_cb->dhcid.len-1 < end) {
|
||||
strcpy(s, en);
|
||||
s += strlen(s);
|
||||
strncpy(s, (char *)ddns_cb->dhcid.data+1,
|
||||
ddns_cb->dhcid.len-1);
|
||||
s += strlen(s);
|
||||
} else {
|
||||
goto bailout;
|
||||
}
|
||||
} else {
|
||||
goto bailout;
|
||||
en = " dhcid: <empty>";
|
||||
if (s + strlen(en) < end) {
|
||||
strcpy(s, en);
|
||||
s += strlen(s);
|
||||
} else {
|
||||
goto bailout;
|
||||
}
|
||||
}
|
||||
|
||||
en = " ttl: ";
|
||||
|
Reference in New Issue
Block a user