From 3f10ee1199ce6255786fab4bc4c337c1ad476503 Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Tue, 9 Apr 2024 17:03:48 +0900 Subject: [PATCH] dnsproxy: safely access server_list_sec for removing a list node Safely access g_list, server_list_sec, by finding the next list node before removing a list node from g_slist with g_list_remove(). Change-Id: Ia60a129605b53995726c98b945936d2b87dcb97a Signed-off-by: Seung-Woo Kim --- src/dnsproxy.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/dnsproxy.c b/src/dnsproxy.c index a84693e..8e3ce97 100755 --- a/src/dnsproxy.c +++ b/src/dnsproxy.c @@ -2344,8 +2344,10 @@ static gboolean udp_server_event(GIOChannel *channel, GIOCondition condition, #if defined TIZEN_EXT GSList *list; - for (list = server_list_sec; list; list = list->next) { + list = server_list_sec; + while (list) { struct server_data *new_data = list->data; + list = list->next; if (new_data == data) { destroy_server_sec(data); @@ -2725,8 +2727,10 @@ static void destroy_all_server_sec() DBG("remove all dns server"); - for (list = server_list_sec; list; list = list->next) { + list = server_list_sec; + while (list) { struct server_data *server = list->data; + list = list->next; destroy_server_sec(server); } server_list_sec = NULL; -- 2.7.4