From 0089a515f6118b4230da30027ed7898e199188b9 Mon Sep 17 00:00:00 2001 From: "sooyeon.kim" Date: Wed, 6 Jul 2016 14:41:11 +0900 Subject: [PATCH 1/1] Fix SVACE - DEREF_OF_NULL, DOUBLE_FREE Change-Id: I19ecbdd305f8538e45d6933acc9971ea5ef6dd5f Signed-off-by: sooyeon.kim --- common/stt_config_mgr.c | 7 ++++++- server/sttd_server.c | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/common/stt_config_mgr.c b/common/stt_config_mgr.c index 626f054..6d7a95f 100644 --- a/common/stt_config_mgr.c +++ b/common/stt_config_mgr.c @@ -560,6 +560,11 @@ int __stt_config_mgr_check_engine_is_valid(const char* engine_id) /* Change default engine */ iter = g_slist_nth(g_engine_list, 0); + if (NULL == iter) { + SLOG(LOG_ERROR, stt_tag(), "Operation failed - false engine"); + return STT_CONFIG_ERROR_OPERATION_FAILED; + } + engine_info = iter->data; if (NULL == engine_info) { SLOG(LOG_ERROR, stt_tag(), "[ERROR] Engine info is NULL"); @@ -640,7 +645,7 @@ int __stt_config_mgr_check_engine_is_valid(const char* engine_id) if (0 != stt_parser_set_engine(g_config_info->engine_id, g_config_info->setting, g_config_info->language, g_config_info->silence_detection, g_config_info->credential)) { - SLOG(LOG_ERROR, stt_tag(), " Fail to save config"); + SLOG(LOG_ERROR, stt_tag(), "Fail to save config"); return STT_CONFIG_ERROR_OPERATION_FAILED; } diff --git a/server/sttd_server.c b/server/sttd_server.c index 5bfdc92..b782585 100644 --- a/server/sttd_server.c +++ b/server/sttd_server.c @@ -434,15 +434,19 @@ static void __sig_handler(int signo) int client_count = 0; int i = 0; if (0 != sttd_client_get_list(&client_list, &client_count)) { - if (NULL != client_list) + if (NULL != client_list) { free(client_list); + client_list = NULL; + } } if (NULL != client_list) { for (i = 0; i < client_count; i++) { sttdc_send_error_signal(client_list[i], STTD_ERROR_SERVICE_RESET, "Service Reset"); } + free(client_list); + client_list = NULL; } /* invoke signal again */ -- 2.7.4