From: dyamy-lee Date: Fri, 21 Mar 2025 06:19:27 +0000 (+0900) Subject: Fix memory leaks and prevent dangling pointer in engine init X-Git-Tag: accepted/tizen/unified/20250326.130855~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5a0400c7bfb85f9fa94d9ed94e4ea5b152eb6262;p=platform%2Fcore%2Fuifw%2Ftts.git Fix memory leaks and prevent dangling pointer in engine init Prevent memory leaks by properly freeing g_engine_info before assigning a new instance Ensure temp->default_lang for avoiding partial leaks when '__set_engine_callback' fails Change-Id: Ie2926be9716632001405289c8cda08cbf31e9acd --- diff --git a/server/ttsd_engine_agent.c b/server/ttsd_engine_agent.c index 16be7dd5..58f1571e 100644 --- a/server/ttsd_engine_agent.c +++ b/server/ttsd_engine_agent.c @@ -253,11 +253,24 @@ int ttsd_engine_agent_init(ttse_request_callback_s *callback) int ret = __set_engine_callback(callback, temp); if (TTSD_ERROR_NONE != ret) { SLOG(LOG_ERROR, tts_tag(), "[Engine Agent ERROR] Fail to get engine info"); + if (temp->default_lang) { + free(temp->default_lang); + temp->default_lang = NULL; + } free(temp); temp = NULL; return ret; } + if (g_engine_info) { + if (g_engine_info->default_lang) { + free(g_engine_info->default_lang); + g_engine_info->default_lang = NULL; + } + free(g_engine_info); + g_engine_info = NULL; + } + g_engine_info = temp; g_agent_init = true;