Fix svace issue 02/260702/1
authorsooyeon <sooyeon.kim@samsung.com>
Thu, 1 Jul 2021 17:54:30 +0000 (02:54 +0900)
committersooyeon <sooyeon.kim@samsung.com>
Thu, 1 Jul 2021 17:55:26 +0000 (02:55 +0900)
* No lock
* No null checker

Change-Id: I94892e1226d9ee6c3852648e5f86690945ed1462
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
server/ttsd_player.c
server/ttse.c

index e065150de957786274cb547c73aa82b14e39fd24..9a6eccf83fcb24fd0b9708af8861b745f10f1cb8 100644 (file)
@@ -1093,8 +1093,10 @@ int __destroy_ducking_handle(void)
 
 int ttsd_player_release(void)
 {
+       pthread_mutex_lock(&g_player_control_mutex);
        if (false == g_player_init) {
                SLOG(LOG_ERROR, tts_tag(), "[Player ERROR] Not Initialized");
+               pthread_mutex_unlock(&g_player_control_mutex);
                return TTSD_ERROR_OPERATION_FAILED;
        }
 
@@ -1122,8 +1124,10 @@ int ttsd_player_release(void)
        SLOG(LOG_DEBUG, tts_tag(), "[Player DEBUG] Thread is released");
 
        ret = __destroy_audio_out();
-       if (0 != ret)
+       if (0 != ret) {
+               pthread_mutex_unlock(&g_player_control_mutex);
                return -1;
+       }
 
        ret = sound_manager_destroy_stream_information(g_stream_info_h);
        if (SOUND_MANAGER_ERROR_NONE != ret) {
@@ -1153,6 +1157,8 @@ int ttsd_player_release(void)
        g_stream_info_h = NULL;
        g_focus_watch_id = -1;
 
+       pthread_mutex_unlock(&g_player_control_mutex);
+
        return 0;
 }
 
@@ -1191,8 +1197,10 @@ int ttsd_player_create_instance(int uid)
 
 int ttsd_player_destroy_instance(int uid)
 {
+       pthread_mutex_lock(&g_player_control_mutex);
        if (false == g_player_init) {
                SLOG(LOG_ERROR, tts_tag(), "[Player ERROR] Not Initialized");
+               pthread_mutex_unlock(&g_player_control_mutex);
                return -1;
        }
 
@@ -1200,6 +1208,7 @@ int ttsd_player_destroy_instance(int uid)
        current = __player_get_item(uid);
        if (NULL == current) {
                SLOG(LOG_ERROR, tts_tag(), "[Player ERROR] uid(%d) is not valid", uid);
+               pthread_mutex_unlock(&g_player_control_mutex);
                return -1;
        }
 
@@ -1235,6 +1244,7 @@ int ttsd_player_destroy_instance(int uid)
                        iter = g_list_next(iter);
                }
        }
+       pthread_mutex_unlock(&g_player_control_mutex);
 
        SLOG(LOG_DEBUG, tts_tag(), "[PLAYER Success] Destroy instance");
 
@@ -1469,7 +1479,9 @@ int ttsd_player_all_stop()
                        app_tts_state_e state;
                        if (0 > ttsd_data_get_client_state(data->uid, &state)) {
                                SLOG(LOG_ERROR, tts_tag(), "[player ERROR] uid(%d) is not valid", data->uid);
+                               pthread_mutex_unlock(&g_player_control_mutex);
                                ttsd_player_destroy_instance(data->uid);
+                               pthread_mutex_lock(&g_player_control_mutex);
                                iter = g_list_next(iter);
                                continue;
                        }
index fe28baad830c54f36a6445aecd946266e284a8f1..f8a96175e2b1e2c0966947c7a16df6524c46ce80 100755 (executable)
@@ -97,14 +97,16 @@ static ttsd_mode_e __get_mode_from_appid()
        }
 
        ttsd_mode_e mode = TTSD_MODE_DEFAULT;
-       if (!strncmp("noti", last, strlen(last))) {
-               mode = TTSD_MODE_NOTIFICATION;
-       } else if (!strncmp("sr", last, strlen(last))) {
-               mode = TTSD_MODE_SCREEN_READER;
-       } else if (!strncmp("interrupt", last, strlen(last))) {
-               mode = TTSD_MODE_INTERRUPT;
-       } else {
-               SLOG(LOG_INFO, tts_tag(), "[INFO] mode (%s)", last);
+       if (NULL != last) {
+               if (!strncmp("noti", last, strlen(last))) {
+                       mode = TTSD_MODE_NOTIFICATION;
+               } else if (!strncmp("sr", last, strlen(last))) {
+                       mode = TTSD_MODE_SCREEN_READER;
+               } else if (!strncmp("interrupt", last, strlen(last))) {
+                       mode = TTSD_MODE_INTERRUPT;
+               } else {
+                       SLOG(LOG_INFO, tts_tag(), "[INFO] mode (%s)", last);
+               }
        }
 
        free(appid);