Bug 1395244 - add gtest for index out of bounds in rust mp4 parser. r?kinetik draft
authorAlfredo.Yang <ayang@mozilla.com>
Tue, 05 Sep 2017 15:13:02 +0800
changeset 671568 751ee200369bd22d94a40d509e6adc7854951157
parent 671565 5ebe2e8980c6fd3ede2b6617bbbc4073dd9b0369
child 733550 3e89f67937925d49b551c4d2efea404f40712d1d
push id81971
push userbmo:ayang@mozilla.com
push dateThu, 28 Sep 2017 02:04:33 +0000
reviewerskinetik
bugs1395244
milestone58.0a1
Bug 1395244 - add gtest for index out of bounds in rust mp4 parser. r?kinetik MozReview-Commit-ID: HeFwZgOpMdK
media/libstagefright/gtest/TestParser.cpp
media/libstagefright/gtest/moz.build
media/libstagefright/gtest/test_case_1395244.mp4
--- a/media/libstagefright/gtest/TestParser.cpp
+++ b/media/libstagefright/gtest/TestParser.cpp
@@ -260,16 +260,18 @@ static const TestFileData rustTestFiles[
                                                             false,   0, false, false, 2 },
   { "test_case_1351094.mp4",        0, false, -1,   0,   0, 0, -1, false,   0, true,  true,  0 },
   { "test_case_1389299.mp4",        1, true, 5589333,
                                            560, 320, 1, 5589333,
                                                             true,    0, true,  true,  2  },
 
   { "test_case_1389527.mp4",        1, false, 5005000,
                                             80, 128, 1, 4992000, false,   0, false, false, 2 },
+  { "test_case_1395244.mp4",        1, true, 416666,
+                                           320, 240, 1,477460, false,0, false, false, 2 }
 };
 TEST(stagefright_MPEG4Metadata, test_case_mp4)
 {
   for (bool rust : { !MediaPrefs::EnableRustMP4Parser(),
                      MediaPrefs::EnableRustMP4Parser() }) {
     mozilla::Preferences::SetBool("media.rust.mp4parser", rust);
     ASSERT_EQ(rust, MediaPrefs::EnableRustMP4Parser());
 
--- a/media/libstagefright/gtest/moz.build
+++ b/media/libstagefright/gtest/moz.build
@@ -32,17 +32,18 @@ TEST_HARNESS_FILES.gtest += [
     'test_case_1301065-max-ok.mp4',
     'test_case_1301065-overfl.mp4',
     'test_case_1301065-u32max.mp4',
     'test_case_1301065-u64max.mp4',
     'test_case_1301065.mp4',
     'test_case_1329061.mov',
     'test_case_1351094.mp4',
     'test_case_1389299.mp4',
-    "test_case_1389527.mp4",
+    'test_case_1389527.mp4',
+    'test_case_1395244.mp4',
 ]
 
 UNIFIED_SOURCES += ['TestMP4Rust.cpp',]
 TEST_HARNESS_FILES.gtest += [
     '../../../dom/media/test/street.mp4',
 ]
 LOCAL_INCLUDES += [
     '../binding/include',
new file mode 100644
index 0000000000000000000000000000000000000000..da43d017ed2e87e9cf739e28ebccd11db29880ae
GIT binary patch
literal 13651
zc%1E92|Sfs*ME+=ka<iT8A670jG00*g;3@aXTsrdj&qKAo+FWrQBr2gkW^%9KvGIb
zWR4OtcBL|W&vCo=>b~!NzxVrff4}$s-tVqsKYQ)H*IIk8wg1oF&wiW(007jP>`%aw
z@E!m_1yFJ@$s>GFa1Vka8~^|YXCejz0J2{^&<HXpQ$a_&xmh--_rBq6zv1n4=~vKx
zk-2$4d1XbY3>1YYVxVvZB`8r|K~V|n3`4<DN(x|up)4pMXKJozAfpJ?vDO78(HIoi
zpo=H?<1o%-s5}g&AR`ZhQ>0zVWP+NUoUgC1tPd8A!Q&8~vUsA49HkdoSF#5Vl))3o
zSiC1m4T?e_5hzVKl!$TGRDhx}NE{yJt_fFzsllKKPXx}NgwcfgDX78x;Gl62jHWBb
z4@&Yzf}9GJK=KDw!K)(?tqGTfflA;7>VfscpdBd|;h=^i5#i~A(S$2QQLaS12f`6l
zg+s|i3=W4Sf!qPV185W(WKdonnlNw(2y_766Qd~)mxjZk&Il6Okw9|C5-1Ws8}K4H
z;+>sI7_z2}Je2H81T{cI@=zQe?~ZT<OOC%*LP<C*3iDe94C+bT>I8-LK#(Z|!FrN0
zL>vMX0_%}DZz96q5ry|4Ajn`D1;&U>L|{EZ6QCdwL6LDLB0Ml8Fj`1Qf<MS((VFrg
zk3b^`6gQBLNGyWV6B<jzY&qtO!MeDTksyaBU_2dN@C2~+=Sl*o>W=XTZEMOa!M?GM
z9#~IJc||A*h4I9oyvdr1Fz8nAl$a7RBv(+Kh;sbZT}nF<rHLXsLp_jSU@2~a1x<Mc
zSs2ud;*2ItRvBao6vJCN!cS9K6=X<c3_(*7iY0)v1R?^QM9>z(3j_dVI)N|%fJ9?X
zM*%9E8)MX~oLzhT6Yg|aq|bA8B;RJwFzH`D$D8Cp>qX-Ph^0<2U&{4Aarz)c3IN!{
zhHPQ1AKnz*YdJvI^%*AU=P8zzihX6-{j5DUtpp<Fm~j}PY`HUFRawTiw%T|tAq%Ty
za2<a<P~+j{2<oEEr~P@gj~xid+YZ_I&L-==$a0RKGRax2x`Qx?#W2o$9lrUpXy_b2
zLJEQ*#$_+h486x(VLw{qL|<qT>6&7zx~Nefh_>4y5KQmLVv-3<)jP1xh$=Kukd6OZ
zoRZ*7Z0V@4%@3uvxUTbfFkv;5b93HdEh!r!uv&fqU(EIV7_(Z$)Zo&Ni#ztmUm<L)
z8(O7Kjm1(6mQh2w^(V%e#iktnEWf}7FqekA$bqzd^NmF=^L&>Qxfp9^xQ^R>mAOV|
z6tb|Qwb3(4CDSZe)9nhaU-ZWu=E!cVyU#n+s~7N8e98!Qlc^wRQlgfguTwtjo^gaB
z*7##rPWDD(!g*uk@j}xL?x}MZQYIP#Y%IXFqf;kK7^fS$Q4|IEoUWta5eo2FHAk`K
zo!pmsPFrs$75%zFY@$jPHLm5e{*vv`kQ3hkZ%nRxCMuoxR$Udf6EcyWI#r#A=S0ZY
zM!mb#`K%(tEdfI!!`DBiT0TY1PD+2eQ_%TxUZQp<-XT!M<S6rrk^JW6fk(2LJ}Po^
zuhvyuCz@p~B7;vGnF#P?@8pz=F8UZh22t80=w#h%J@!6SENUtYdb-$vk6}H-3!sw3
z=PpQn9nZ97JDG+tzH(o@h3MFkzkm4jW)q;m#?pwcHdzf>WZ~+HGq(I7@Zu15r2Mts
z$c+=#tEPDlu6wz-&Soz7PcKb8GdN#v9q+8a>hS_EBs)Z%+G}y@W!xtnP4!1nr$qQv
zwa!RLv0dcT9Uj$IpP`2&oz-{T<(?6`5pYxgt!Ua>^pco*t`cmIV{4}21;r0{E)I<B
z_U^DEvtJ&3R<B%HnVrFJ>gLF#BczsfhC{0)B461Yzgty`=L9#GtvRlgE82&?<fI>?
z{Ccg-nWLrGU*-6Jt*FFvytoh0BzSXO&30zK!i=9xxz`{S)+WK*ar_AP$(6iaH^j5G
zB?b#D`pf5)ePngXH;m4@|1@_h3HJ;YoPSX1r$^?MPI~(d)SN#k5trkWf_fq=&b>Z<
zdsfr03|@Qv<)bHaA{B*g7s;xm=)|CuXa;+y_BMmEyz$fL=^40DPd7)N*<Up}(0*Pj
zjom?{U}mzss%jwEUYT^>zDzq_#`4iA3%0Y@JSwE5t<~5E*JQFW!r1GdiDzFN<moUR
z_V-!708go;QhX{?S4#I#8q1SxY<4+#4wu+jBYN@vSkV0@oO!!JeOJY*g}<Z1TYg^$
z;*m=-+)mwhCH<GPmM6kf8iZ!Xb_^GwI=W>()4L2F%FE2M5~P3egrpL~#1V{udf}r{
z4-q~ovmLR(QCrNcuJWE0d~R|km1HFnrPzH+U|d*$37`-SwG&K9MNX`DqJ;AdM=>Di
z9WuhftHp;DkqSDsmqo1!7r^SE<zf&~N3NF7+2milrmF0je$brms=JTr#R670sP^%Z
z%$9z~@y{4_ZH9p>;U%^HvK3;6`L>dm9B)5tWoflN{rED^>B!EC*Md<zX8m2G<(H(N
z6g9Or?cZgZU67OtDb5;7agjXCf0~u^(_6TY&1$3F(bo%Mz#kAq`;S`w(sV#r`di4A
z9w*$RGLMic&qz<(o1uH)op~^+@MZoPm&Fyjq+4o-;BiQe4B;mnA$$VetJ9giwAGK9
zW5wD#n_^owbPM0#w%j`r`lz0rr%0-~kY4wy@YOXuetaN&jmeS6^OZv1r$v_B>7c-q
z^#eV~*$=PVho{q(lL#j04_*=}e(%=Rr`3@jxk->0c2-ta+EZ7V6bN6@IiGp2=+4DD
zbuKgQIx=S5@KSv@$+<%sHm<FBSBWoz<_e8*!DNA9!Shblo}HDu&H6rE!n>~Pr8l&N
z$i7QxpHCm04|uFLHn)1(;7rP;P?j@mv8LUg#d_^y$$p}8N3Ft5cEujn)mt4NX{n)J
z<!zK5s&uKC9~aW;SzW31uPJWne|<Zpp;y{Na5S@hVBA7{@!1#O9-oJ=bp)yNZ<Lmn
zhIbw2bsk%3*Ia@hiXGZ@@6uadfwcP>f!BPL-#$&ZMa<LvvzU*93%9dQmY#-iiewbH
zi-L=H<JbEMo3xX*VYJT@-&j0wvl#^Joc(u)e~2U82+*-htcdHE{7l`^-&fv<N|dp+
zF^N0tS&HOR9ugQjIlOkoy;8KyU4Qzc?6~-e*4K4xA2aM?kB#49R;ztPb<o(myyg9%
zR41=*W>w2AebwXp?vf|N<uj-jm-tS+H5YzU332>-0p(<*Az4>>(+zsBroN{kak66A
z1!Xp6H8I@tbtoI^NYwC^F{a5!3kdf1F}#qJF<8PbY<6$dVR!ZJT%Lb;H?}lmYTCOJ
z&pDf9#Bh7ryGv;~pILPc?Zc7gDiEG8r$c*r>Fpi+YUWJfuI_`Sk7l`Nx=yv<Pu2>j
zQ8@XMH*xw<V2t~{8=phoS{cKiJ~h(3Y3?`CS|XR39r5;YXz81P92emWITkU!9l>OJ
zG=0~i>8SKi?*uYW+bh;j*<E&mxvC;3vv$$tvXt{arDy%5xU;2ju9tvkjnN5FINUm&
zL|EPRnL((kI&FtmZ_s6&iQ}E9ejr&+9G6@mvjEj@zBm;7k&Qv?<#NQBoQ9`_I>x_*
zx7^`#NdN40-RFRIy?k#3`-6RVOB(U)3!|*#6{Ck#>LQjbo0~uM5M8Te^XJcexPGVK
zVYlcEv#hck-!a$)4pMs(oX1Yppr=8yHnU$LwjWXEP^i1ots-{)!v4OOZ)@|>-U2_}
zQBhhMh*Y<)aq=9_=;XZ|oIq$dXkR!73A(Y=dTJ@^NqJhTubzo{3!BhdT>{C~>yvx^
zMdS3=4MaRo+61-27rgE}?(?R5+~wkLSs^}@q(bo<S#4Lw_uXvj6F!PtfP~QjyujhX
zV*Vj<;iq>H;9m!ff9S^Bxl;FAmNd0ZCxmB0^^-^M$Xk!GIpGjp(1p3zT{YQO*8JR*
z&m6ZM!_a8bgCs%rUh<((d37CDztoHiYomwGgnAk?+`T!`zw0JFxWmC3Vw;x~BO0Sq
zdz_*KRgc)kNC|q5FsT>sXLx_};lb0mIE%#+t}mQ95%1-$UU)*!r64tY#x?%L!w#u5
zgU2UZYW=uXzt+w3xYw=8xHw%e-HRKoiC8G8QA}Zb?r#};RnuIbQLDG*7MDP=y`I=T
z{#{SCo3Fh<3Pe;hsnVLO(%$GjE}wf<XKd(pp1X4CHAQLgBQq%7C|x^?2xJMLz|saY
zN*3Q^&>*H(Gg)d3HS+qJTOY}rltm8KGYYH^`JSm63gND<wC-h7CfMKeJ2sGI)JTs+
ziOxRH+dJde{BJF&^uj?5L0b#zP~|~O%a?#EO2Ec&yiTtw*5SAzPaNB7LzPHnp+5N-
z%wEr6uMX;YaE9|UnRKxtg_1Z|>|-c*jF40>&}xvdBB<~Rp)wbVuz%Do@#aXx$i|<u
z<o|aNr1)2sIt;wD=;WZ>j^Ez|$a{BkM0dN1!v))3zF3K?ym?>Y^2PF%>?MgoqGDm3
z&k;_HHc77d1FA}mxR<%*5f7qU9H+aZe0jWxOE=VLu;@t;m)HagMzn9b?}l}*QYTgO
zjbiz18|K~xJU)L`*M;+1iD#A4sV;S;bAio<&Ai<^-D09&DR_50IYk@Uv_~TSiCb8t
zA3RI$+-Rl|^GE1#%%T?jGUOIlxg=vdfn+Fk!gYy5){tGHqtN%nX6{br!H9BU!<v_~
z>@E9*1sI$tF3~izw+bB#ic?F5`r~pwwTpHLROWKT_5hGQo1_1cc>hId_Y>_OGjQP7
zkUs)Lemu#`g(mG{xK_!5QkM9@=a;Arb*EV#;5UDKr2j=U?DRwGkY@1m5|R@^KGXzU
z7OQGI*wDX6cNy_%#`Pjz<x>;@L8=2;_p!S|t7k0mXCoc368aJl&GKW4A`!D~?+?hz
zhc;YG6l)oaEL*H)`jRxipNXew`s@7q+%bz*mgkaFGi#%fM(^yUmy-xIObb?tG`W?2
ztexjr*22YCnDb>Tg7;l9PTsXtrMv$ijNfejPV>}AXY}mKsN)_!w$!<@Zp`w@=Q@!b
zBJsy^OH~tZ2`Bff06K#6uB3U(DISGu-ld0mWfsY<$2Rvub6e=&*h@T9hjNdzg~onW
z{r(1CZ^4URs@TWAD0CstI(3Po8N(2)Gy3;JzMUZT^*^G%wfKWzigKfX$)@(qjyPsR
zqCJ4S&ahT@gZcV<?wNza8f=!wUx`sui8;Z#UK4Ib&1-EO%0Ikjm$)b&L%5+E)>yRO
z(LC>Uv}nFA!%E(5=u3Twbg>e?|HKi3<;A+9QZJMB&jA}YhUYt)2oD$nTaMz#Cl4bG
zS!6H0Y&dzC5Q%MRi03DsFBeKYdhgz;@MO=TJuAa?7CHl2fp^>V0|WT)Eh+PHKvN2j
z)nZP>y8dM5YJAQbh;c{zj2L&hZ6vJDvI(*0WZN)m)y#dRBWmbJtqY3nxbi)i{Ado{
zSA7(vJ6@zLe97RHESXuDrTE}^-_5WepM)QxKezuUKc<eC`yutw?_(ao_d-wS^`o!!
z1#F`dO*9L9_l3*@P5<74x6|$)oUsGo8W66N6=zhe<9fk_!De&gfHtEUskJ%WYoB=~
zRUeS&_PS@EP`0*)5_dn7lujj-XnAL!C5}yHbVdo=+-<FVe(;U{_(bi%vuPL7GtL8*
z_;X{o(t8=Ah6~n*YRvjV9qLzE$Okx>`V0)Qjn#Me1nGH%dQDO<?<cCX^b{+8@bH#4
zY7Cf8VKATe`%<^VBjC}or(-tuUW)tj3`Dt#xHfY|JHwmmn@V>zuO0QObn-6~U~=0p
z_|dwa_T$h(V+P|V{RkWEMjHfvG4F`Rd(i*^<a_>G7F?-R<!D5IiNN@C$k|~{df&^i
zJfoqhk1%Vw&SQRE46^lgTxlh;TIq^e8@UAs?UThMLRa36-ZeiSgnU=<iREL;Yq?tq
z?Q~Ps3hob9Gca#jV<dIm_dg*s_OYh$KiE9eRo7`8(7?NwNoo&W-qNi~HB6;^oG4@0
z#4ET2X~tx5SdOPmFkm0|<B9Bek3u}}%z_W{UaD#KtQRp)NyiFzbfG%BN`tCe)v`_a
zcN^Ekb(-`C$tla9&bB9_d-jEOvVMu|{CnftPLTTMAJV4|`!(iwC@~LA5VX+fi*FC&
z>+Bhn-QZ|;0Us7V-2RU*?|&)!(d8YSHi%A6ksh10+$P}jV&iD7*S;3NYl6?CL|3ZL
zcM>kJmX}wrBLP#hdCNFfJ=-%pW*tl)`+`eaV1Wi*MU(6?D&-#S10s);<DJ;vj5L#t
z{4~lKa1Ie;g}YS`jm=6abzZnqQ`UYFb)AtKjVNrk<~aZP(`#qOdC?xlu34j?OFQiN
z+Xmhp#tZ4r(}sw_Xw}Y%a72VGkWK_hZ@3zk_e2^@NWO~SDTP(Be6&+^ymU!Aa#uz_
zhD{+STvpx@UF@-xKplWvJQ(AbE4jw%ymmDQ50nXWg>i_RT{Z5}VK~<9qBD`lpg)Ri
zi?U-IQ0$&Gs_+~cVP(43>!o{2CA00o=kIYB9G!<tFgwgTCrB3F6|SSbkEIx(+P&Gl
zEo}evHRgX8RsYLYmCUdoGf((6=C3Hn%nGmeRK0AKchP0dbqi*YeBqzyU#R?jr*9`b
z{09w;f@uYk)B5d{*=n!Ivv$-8@-iTcC7(DiGsF6Mw?l``^vuA4-pzB>Y6%OrIkBqe
ztU08|i*xNgSX@ZeHKBJ<_aYhuYZw)fW;E(ICLLVp)LJoOHYy1C%Ht``4AYP_n-2Qo
zRfTtez;r1S&%x+-%me!*M$6W+H&HUJ6}~MrZ1V<nFV-4qk#{1#w5ghMCMI8+JuJTH
z;Upk0?^w>C&$V#rt7b|FeOd}U)%s<>ZjDp<XNec48RvYjo_dwbc4RVXJ@@der0uAx
z&uIDCFEeq6L^OSu8I7Z9Gh<E*$Ub;&l^M4p>lt0dG-8uekf)e8bcQeHSFk<bdZ&>r
zt`F6sNuC)diSQ#wFDp>qBMtt&nQx~*aWkj9M>^)S1DL4P@Vk6(Zm*e!U?WE^7TnA~
zUjO^#u$^{yH2;V?cyIvLAUTgHC;z;@+B5Lu1S!uj=A_`eR}ZM(a_NsZO+MLtP`3Qc
zsNl^hNwH&EX&-_H$0sFehIU%eJPNj4T@60%tk5x9n{?lvg--24qV%oD48AlBnOa9g
zW?v?cAt9+|lVy*O+Qw$4YPJPESFF&%e0X|mp=rSTwvw~$u0=7)V6Dxo+@r751J)g%
zB#qeI9CH<^RG{MQ;c9eZ(_ypDZl#mJ@m`G%5ek$r=H0()>{RW(->vGrMKI0%^sLBd
z0q=wv!YY~TLs+_BAl20?ni*|e<y22T+f3s#Sc-HQI&SjmE)VhI^~&IQn-JeM9(SHF
zU09z%_};?k+UR)Lcl)@-l#BnwLZhYFj2!d%R_&&!pAV}Z|7XbU_>npJtJ4o3R)2R+
zVk+ZIEGlPR4SsESDC8AKF6Ehh{p{bj`F8rz+x+*(q!Q^Emp0K5rp3V9VWw1mOk*s?
z8c+WY`F8sAV7|4q%*mFC7Jgp49J3a36qh!pL1!M@Bgp*!DCDO9yU3px@|GL%LV%0F
z{pm0c`}XTmFR!}UDT!v8o4gg*#vsol;(}`5JghptqBXerY$J4eqiKHg@}}0}rq;|?
zA^2<ZU_j-w)4EKe`$YH^UAyx1nVF3H0c$sjAn+6?{*EKCz2V{DxF=Q_mUZ6b{@Q04
zO=gq{Qe2pW!6=M(P3YZ**1Pr48!HD<g>QOef)4Q_gjIP#D`)v(uBZ^!A9L|9NA$u1
zj8hbbW~eX$5*}+sw7z@6r?iY-S*&%0D7u$je#b#RNzNTkUZRyfezRAVud_WI5ILl;
z$ukn{tKWJ)Qc`kGv$yWH_4Lq*GH+ZN7cvL;s!Iox?)Ed;Vbblg!@@nFyu9As7kjL%
zqWe}v;%@3kg|Rqvm8TTKb&9ST!=0sDGOM|fPb_<W;*L~O64&6ib1vMXf^<8~rB9>(
z;VAv7Bme+(a1T7*2jp=cKCbBRo2kL+fD8i=fb#bnLB5yzeOdco_el)^RDEP3!X4yK
zlHIrZWcf#HkSqV7`ET^Q^~Jx1t)eIfO(uc400u`Q|E58)OY=>a%FF|eMSu*{1O0p7
zVPN6}tR8L^WL(iW;x8?f@9b}vw5EKA-w@%6#$hNjkS`usPiKm@kH?nL?ZXsB|J){k
zCSshoxxwU3#6iCeu#QAV;y^x~L?)rP$;428w(tj`pg6t&7=n!9A4&WJ@orN7kq!f`
z>O#-}^X3@9;{xW_`gL@^;KC>q1zvdR<2gGZ0G;d1n~uHB6fF{YE3Citv6J${3W~Sj
zXzRDtQ<5#}H(APqEY()%x7v1o%YP~VqDS@bv`c_}p}y5o(f!;`1$>`Vk_IRju+3x8
zD2)av@&Zh5V7VPk13xE7G?-{X{>!)S6iH+he%shVJnR$$kqX`_9O3}L1^UIO2mpI>
z0YEqb0K_OiFp2sXu%`Ov!tk~_2xPl=zt(<V)c(HsN3gC1Z)NSDbs=ki4C`x$0pOVS
zKZ7+1@9nu=@;F#VZ-aHwH(0ZhJiasf??Br98>C%+2WcA*f+FG{+@=Cpe;F!B3K$Z4
z3q;gmVPSj0Mj9~Z)aKgK*+``%TCj$Sos|yEAe1;mw_%i0=KKvuRFrUPZ^I7_@I7vR
zDN_>dwt5N%=)Uo;zrz(c76{lMg#72`zsDf`K`^RG;0$POxdd>74?_IlybBfpz}^@D
z5C<^`AidFKN=WTJFyvoCE4+Q4L2M8a1OjgRT+3j829sC`8BghO4;rzhyfr5#2p?x9
MC0V$<EF32PKXc^1S^xk5