player/track: check invalid index param
[platform/core/multimedia/libmm-player.git] / src / server / mm_player_tracks.c
index 67ca20e..fb755ec 100644 (file)
@@ -97,6 +97,7 @@ int _mmplayer_select_track(MMHandleType hplayer, MMPlayerTrackType type, int ind
                GstElement *subparse = NULL;
                MMPlayerLangStruct *temp = NULL;
                unsigned long cur_time = 0;
+               guint num_of_list = 0;
 
                if(!player->pipeline || !player->pipeline->textbin[MMPLAYER_T_FAKE_SINK].gst)
                {
@@ -104,6 +105,14 @@ int _mmplayer_select_track(MMHandleType hplayer, MMPlayerTrackType type, int ind
                        goto EXIT;
                }
 
+               num_of_list = g_list_length(player->subtitle_language_list);
+               if (index < 0 || index >= num_of_list)
+               {
+                       LOGE("req track index is wrong");
+                       ret = MM_ERROR_INVALID_ARGUMENT;
+                       goto EXIT;
+               }
+
                _mmplayer_get_position (hplayer, MM_PLAYER_POS_FORMAT_TIME, &cur_time);
                temp = g_list_nth_data (player->subtitle_language_list, index);