[0.2.137] Fix Coverity issue (MISSING_LOCK) 34/304434/4
authorGilbok Lee <gilbok.lee@samsung.com>
Wed, 17 Jan 2024 08:18:10 +0000 (17:18 +0900)
committerGilbok Lee <gilbok.lee@samsung.com>
Tue, 23 Jan 2024 01:31:53 +0000 (10:31 +0900)
Change-Id: I0e36ab7b8d343e7232ff8fba0091068363b2922f

muse/src/muse_player.c
packaging/mmsvc-player.spec

index a61a34a..d6249d1 100644 (file)
@@ -166,15 +166,18 @@ static bool __mplayer_remove_export_data(muse_module_h module, int key, bool rem
        }
 
        muse_player = (muse_player_handle_t *)muse_server_ipc_get_handle(module);
+       if (muse_player == NULL) {
+               LOGE("invalid handle");
+               return false;
+       }
 
        if (remove_all)
                muse_player->export_audio_data = false;
 
-       if (muse_player && muse_player->data_list) {
-
+       g_mutex_lock(&muse_player->list_lock);
+       if (muse_player->data_list) {
                GList *iter = NULL;
                muse_player_export_data_t *export_data = NULL;
-               g_mutex_lock(&muse_player->list_lock);
 
                /* LOGE("number of remained buffer %d", g_list_length(muse_player->data_list)); */
 
@@ -209,13 +212,12 @@ static bool __mplayer_remove_export_data(muse_module_h module, int key, bool rem
                        }
                }
 
-               g_mutex_unlock(&muse_player->list_lock);
-
                if (!remove_all) {
                        LOGE("There is no key:%d in data_list", key);
                        ret = false;
                }
        }
+       g_mutex_unlock(&muse_player->list_lock);
 
        return ret;
 }
@@ -295,9 +297,9 @@ static void __mplayer_remove_export_media_packet(muse_module_h module)
 
        muse_player->export_video_data = false;
 
+       g_mutex_lock(&muse_player->list_lock);
        if (muse_player->video_data_list) {
                GList *video_list = NULL;
-               g_mutex_lock(&muse_player->list_lock);
 
                LOGW("number of remained video_list %d", g_list_length(muse_player->video_data_list));
                for (video_list = g_list_first(muse_player->video_data_list); video_list; video_list = g_list_next(video_list)) {
@@ -306,9 +308,8 @@ static void __mplayer_remove_export_media_packet(muse_module_h module)
                }
                g_list_free(muse_player->video_data_list);
                muse_player->video_data_list = NULL;
-
-               g_mutex_unlock(&muse_player->list_lock);
        }
+       g_mutex_unlock(&muse_player->list_lock);
        LOGD("LEAVE");
 }
 
@@ -2706,8 +2707,13 @@ int player_disp_return_video_data(muse_module_h module) /* MUSE_PLAYER_API_RETUR
        player_msg_get_type(v_data, muse_server_module_get_msg(module), POINTER);
 
        muse_player = (muse_player_handle_t *)muse_server_ipc_get_handle(module);
-       if (muse_player && muse_player->video_data_list) {
-               g_mutex_lock(&muse_player->list_lock);
+       if (muse_player == NULL) {
+               LOGE("invalid handle");
+               return PLAYER_ERROR_NONE;
+       }
+
+       g_mutex_lock(&muse_player->list_lock);
+       if (muse_player->video_data_list) {
                if (g_list_find(muse_player->video_data_list, v_data)) {
                        muse_player->video_data_list = g_list_remove(muse_player->video_data_list, v_data);
                        find_data = true;
@@ -2718,6 +2724,8 @@ int player_disp_return_video_data(muse_module_h module) /* MUSE_PLAYER_API_RETUR
 
                if (find_data)
                        __mplayer_remove_video_stream_data(module, v_data);
+       } else {
+               g_mutex_unlock(&muse_player->list_lock);
        }
 
        return PLAYER_ERROR_NONE;
index cf923d9..6865cc1 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-player
 Summary:    A Media Player module for muse server
-Version:    0.2.136
+Version:    0.2.137
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0