From eaef3a2683ab2fb7cdc69fb5910f23944f1b463c Mon Sep 17 00:00:00 2001 From: zhangyanjiao Date: Tue, 21 May 2024 17:02:55 +0800 Subject: [PATCH] fix(lwip): fixed the dhcp pool error on dhcp server --- components/lwip/apps/dhcpserver/dhcpserver.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/components/lwip/apps/dhcpserver/dhcpserver.c b/components/lwip/apps/dhcpserver/dhcpserver.c index b9facd99b3..e6abfd743c 100644 --- a/components/lwip/apps/dhcpserver/dhcpserver.c +++ b/components/lwip/apps/dhcpserver/dhcpserver.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -1424,7 +1424,7 @@ static void kill_oldest_dhcps_pool(dhcps_t *dhcps) assert(pre != NULL && pre->pnext != NULL); // Expect the list to have at least 2 nodes p = pre->pnext; minpre = pre; - minp = p; + minp = pre; while (p != NULL) { pdhcps_pool = p->pnode; @@ -1438,8 +1438,11 @@ static void kill_oldest_dhcps_pool(dhcps_t *dhcps) pre = p; p = p->pnext; } - - minpre->pnext = minp->pnext; + if (minp == dhcps->plist) { + dhcps->plist = minp->pnext; + } else { + minpre->pnext = minp->pnext; + } free(minp->pnode); minp->pnode = NULL; free(minp);