Fix SVACE - DEREF_OF_NULL, DOUBLE_FREE 62/78562/2 accepted/tizen/common/20160708.141038 accepted/tizen/ivi/20160709.015144 accepted/tizen/mobile/20160709.015055 accepted/tizen/tv/20160709.015134 accepted/tizen/wearable/20160709.015038 submit/tizen/20160708.103202
authorsooyeon.kim <sooyeon.kim@samsung.com>
Wed, 6 Jul 2016 05:41:11 +0000 (14:41 +0900)
committersooyeon.kim <sooyeon.kim@samsung.com>
Wed, 6 Jul 2016 06:23:31 +0000 (15:23 +0900)
Change-Id: I19ecbdd305f8538e45d6933acc9971ea5ef6dd5f
Signed-off-by: sooyeon.kim <sooyeon.kim@samsung.com>
common/stt_config_mgr.c
server/sttd_server.c

index 626f054..6d7a95f 100644 (file)
@@ -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;
        }
 
index 5bfdc92..b782585 100644 (file)
@@ -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 */