2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-22 18:07:25 +00:00

Relay no longer crashes, when DHCP packet is received over interface without

any IPv4 address assigned. Also extended logging message about discarding
packets with invalid hlen with information about relevant interface name.
[ISC-Bugs #22409]
This commit is contained in:
Tomek Mrugalski 2011-05-10 11:24:44 +00:00
parent fc06ee4f46
commit 1185c76639
2 changed files with 13 additions and 2 deletions

View File

@ -112,6 +112,11 @@ work on other platforms. Please report any problems and suggested fixes to
[ISC-Bugs #19615] update the includes in dhcpctl/dhcpctl.3 to be more correct [ISC-Bugs #19615] update the includes in dhcpctl/dhcpctl.3 to be more correct
[ISC-Bugs #20676] update dhcpd.conf.5 to include the RFC numbers for DDNS [ISC-Bugs #20676] update dhcpd.conf.5 to include the RFC numbers for DDNS
- Relay no longer crashes, when DHCP packet is received over interface without
any IPv4 address assigned. Also extended logging message about discarding
packets with invalid hlen with information about relevant interface name.
[ISC-Bugs #22409]
Changes since 4.2.0 Changes since 4.2.0
- Documentation cleanup covering multiple tickets - Documentation cleanup covering multiple tickets

View File

@ -590,7 +590,13 @@ do_relay4(struct interface_info *ip, struct dhcp_packet *packet,
struct hardware hto, *htop; struct hardware hto, *htop;
if (packet->hlen > sizeof packet->chaddr) { if (packet->hlen > sizeof packet->chaddr) {
log_info("Discarding packet with invalid hlen."); log_info("Discarding packet with invalid hlen, received on "
"%s interface.", ip->name);
return;
}
if (ip->address_count < 1 || ip->addresses == NULL) {
log_info("Discarding packet received on %s interface that "
"has no IPv4 address assigned.", ip->name);
return; return;
} }
@ -1293,7 +1299,7 @@ setup_streams(void) {
break; break;
} }
if (i == dp->ifp->v6address_count) if (i == dp->ifp->v6address_count)
log_fatal("Can't find link address for interface '%s'.", log_fatal("Interface %s does not have global IPv6 address assigned.",
dp->ifp->name); dp->ifp->name);
if (!link_is_set) if (!link_is_set)
memcpy(&dp->link.sin6_addr, memcpy(&dp->link.sin6_addr,