Buffer 'gPi->TrackInfo' accessed by index 'sdTr' can overflow 09/237409/2 accepted/tizen/unified/20200702.141759 submit/tizen/20200701.023736
authorchengyj1985 <yujie.cheng@samsung.com>
Tue, 30 Jun 2020 06:12:32 +0000 (14:12 +0800)
committerchengyj1985 <yujie.cheng@samsung.com>
Tue, 30 Jun 2020 07:27:42 +0000 (15:27 +0800)
Change-Id: I24dc045f8439c5ea64caadd327d3ba67f7a7d057

formats/ffmpeg/mm_file_format_midi.c

index 6021ce7..74a91a0 100755 (executable)
@@ -415,6 +415,12 @@ static long __AvGetSizeOfFileInfo(void)
                        if (!__AvMidGetLeastTimeTrack(&sdTr))
                                break;
                }
+
+               if (sdTr >= MAX_SMF_TRACKS) {
+                       debug_error(DEBUG, "__AvGetSizeOfFileInfo:  Num of tracks is over MAX track number. !!\n");
+                       return -1;
+               }
+
                pMt = &(gPi->TrackInfo[sdTr]);
 
                dTime = pMt->sdTicks - sdTotalTicks;
@@ -631,10 +637,6 @@ static long __AvGetSizeOfFileInfo(void)
                        }
                }
 
-               if (sdTr >= MAX_SMF_TRACKS) {
-                       debug_error(DEBUG, "__AvGetSizeOfFileInfo:  Num of tracks is over MAX track number. !!\n");
-                       return -1;
-               }
                __AvMidUpdateTrackTime(sdTr);
 
                if (dSetup == 0x0F) {