Add memory check 71/75871/2
authorKwangyoun Kim <ky85.kim@samsung.com>
Wed, 22 Jun 2016 04:34:41 +0000 (13:34 +0900)
committerKwangyoun Kim <ky85.kim@samsung.com>
Wed, 22 Jun 2016 04:53:42 +0000 (13:53 +0900)
Change-Id: I9b71a9b230265783c1349b97b0fcca78a4eadc48

server/ttsd_engine_agent.c

index 8074660..c1d5fe5 100644 (file)
@@ -296,14 +296,34 @@ int ttsd_engine_agent_initialize_current_engine()
                        iter = g_list_first(g_engine_list);
                else {
                        SLOG(LOG_WARN, get_tag(), "[Engine Agent ERROR] NO TTS Engine !!");
-                       if (NULL != cur_engine_uuid)    free(cur_engine_uuid);
+                       if (NULL != cur_engine_uuid) {
+                                free(cur_engine_uuid);
+                                cur_engine_uuid = NULL;
+                        }
                        return TTSD_ERROR_OPERATION_FAILED;
                }
 
-               if (cur_engine_uuid != NULL)    free(cur_engine_uuid);
+                if (NULL == iter) {
+                        SLOG(LOG_WARN, get_tag(), "[Engine Agent ERROR] No valid TTS Engine");
+                        if (NULL != cur_engine_uuid) {
+                                free(cur_engine_uuid);
+                                cur_engine_uuid = NULL;
+                        }
+                        return TTSD_ERROR_OPERATION_FAILED;
+                }
+
+               if (cur_engine_uuid != NULL) {
+                        free(cur_engine_uuid);
+                        cur_engine_uuid = NULL;
+                }
                ttsengine_info_s *data = NULL;
                data = iter->data;
 
+                if (NULL == data || NULL == data->engine_uuid) {
+                        SLOG(LOG_ERROR, get_tag(), "[Engine Agent ERROR] No valid TTS Engine");
+                        return TTSD_ERROR_OPERATION_FAILED;
+                }
+
                cur_engine_uuid = strdup(data->engine_uuid);
 
                is_get_engineid_from_config = false;
@@ -1723,4 +1743,4 @@ int ttsd_print_voicelist()
        SLOG(LOG_DEBUG, get_tag(), "==================");
 
        return 0;
-}
\ No newline at end of file
+}