Merge pull request #1885 from kripton/fixDHCPServerDoS

dhserver: Fix a potential DoS vulnerability accidentially introduced by #1712
This commit is contained in:
Ha Thach 2023-02-13 15:11:44 +07:00 committed by GitHub
commit 09e70ebd13
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 2 deletions

View File

@ -86,7 +86,7 @@ typedef struct
uint8_t dp_giaddr[4]; /* gateway IP address */
uint8_t dp_chaddr[16]; /* client hardware address */
uint8_t dp_legacy[192];
uint8_t dp_magic[4];
uint8_t dp_magic[4];
uint8_t dp_options[275]; /* options area */
} DHCP_TYPE;
@ -242,7 +242,11 @@ static void udp_recv_proc(void *arg, struct udp_pcb *upcb, struct pbuf *p, const
memcpy(&dhcp_data, p->payload, n);
ptr = find_dhcp_option(dhcp_data.dp_options, sizeof(dhcp_data.dp_options), DHCP_MESSAGETYPE);
if (ptr == NULL) return;
if (ptr == NULL)
{
pbuf_free(p);
return;
}
switch (ptr[2])
{