From c883cd83d4035e97193d62fe3c4f4d8e8f1cc1e4 Mon Sep 17 00:00:00 2001 From: Matteo Fumagalli Date: Tue, 30 Aug 2022 17:04:40 +0200 Subject: [PATCH] dhcp: limit number of dns servers we parse to LWIP_DHCP_PROVIDE_DNS_SERVERS If DNS_MAX_SERVER > LWIP_DHCP_PROVIDE_DNS_SERVERS and we get from dhcp server more DNS then LWIP_DHCP_PROVIDE_DNS_SERVERS we assert at: LWIP_ASSERT("check decode_idx", decode_idx >= 0 && decode_idx < DHCP_OPTION_IDX_MAX); beucase dhcp_option_idx enumerator has not enough values. --- src/core/ipv4/dhcp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/ipv4/dhcp.c b/src/core/ipv4/dhcp.c index ba3ef355..b88f86ff 100644 --- a/src/core/ipv4/dhcp.c +++ b/src/core/ipv4/dhcp.c @@ -1577,7 +1577,7 @@ again: /* special case: there might be more than one server */ LWIP_DHCP_INPUT_ERROR("len %% 4 == 0", len % 4 == 0, return ERR_VAL;); /* limit number of DNS servers */ - decode_len = LWIP_MIN(len, 4 * DNS_MAX_SERVERS); + decode_len = LWIP_MIN(len, 4 * LWIP_DHCP_PROVIDE_DNS_SERVERS); LWIP_DHCP_INPUT_ERROR("len >= decode_len", len >= decode_len, return ERR_VAL;); decode_idx = DHCP_OPTION_IDX_DNS_SERVER; break; -- 2.36.1.windows.1