From 6db7baba992f4e2a8d9e16f55c1a7be04642a260 Mon Sep 17 00:00:00 2001 From: Greg Beaver Date: Fri, 30 May 2008 22:49:46 +0000 Subject: [PATCH] MFB: fix corrupted zips, fix postprocess for compressed zip file --- ext/phar/phar.c | 2 +- .../tests/zip/files/frontcontroller.phar.zip | Bin 625 -> 804 bytes .../tests/zip/files/frontcontroller10.phar.zip | Bin 471 -> 796 bytes .../tests/zip/files/frontcontroller11.phar.zip | Bin 461 -> 783 bytes .../tests/zip/files/frontcontroller12.phar.zip | Bin 465 -> 786 bytes .../tests/zip/files/frontcontroller2.phar.zip | Bin 531 -> 677 bytes .../tests/zip/files/frontcontroller3.phar.zip | Bin 826 -> 816 bytes .../tests/zip/files/frontcontroller4.phar.zip | Bin 822 -> 812 bytes .../tests/zip/files/frontcontroller5.phar.zip | Bin 554 -> 707 bytes .../tests/zip/files/frontcontroller6.phar.zip | Bin 559 -> 709 bytes .../tests/zip/files/frontcontroller7.phar.zip | Bin 559 -> 710 bytes .../tests/zip/files/frontcontroller8.phar.zip | Bin 684 -> 896 bytes .../tests/zip/files/frontcontroller9.phar.zip | Bin 697 -> 923 bytes 13 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/phar/phar.c b/ext/phar/phar.c index 93a8cbb582..27afc67dc7 100644 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@ -1988,7 +1988,7 @@ int phar_postprocess_file(php_stream_wrapper *wrapper, int options, phar_entry_d /* construct actual offset to file start - local extra_len can be different from central extra_len */ entry->offset = entry->offset_abs = sizeof(local) + entry->header_offset + PHAR_ZIP_16(local.filename_len) + PHAR_ZIP_16(local.extra_len); - if (idata->zero != entry->offset_abs) { + if (idata->zero && idata->zero != entry->offset_abs) { idata->zero = entry->offset_abs; } } diff --git a/ext/phar/tests/zip/files/frontcontroller.phar.zip b/ext/phar/tests/zip/files/frontcontroller.phar.zip index 4ee905dd3ae892298fd6c4a01c17d0e5253f5e81..ce37065ab7a3befae2665c7b6e99b20f2eaa8b00 100644 GIT binary patch literal 804 zcmWIWW@cdk1Bt$U7Hi*czrYOSfiNqB5JRF~K}JDdDIY@xugk@4j1Ywk3>lgE0Vw(o zS3FQl0m_0fA5b4qTVj!ZaY<dHE#@MWuN$c}mt?Wr;=cDW$mu8Y=OweqlNaD)GUtL1C^zKwa_i9*#aC@y`Cf z0iHgtK|q5P?Cp5DP+f@Wv#f%2B77#C)0iLz^c4uR!9t`MQzO_%3TdTz$t9Wjc?!S~ z($K7~MRmi}W1a#6KyyHt6KGauUP@{O_5jLAElO3$ELO;^Q~;|A@MdHJ>H-675e1Wj z&^V$E-4OIxLl|NKWD<%)bkop77-8BiATv=9Yj~p@f*#xmLxg~-59}{2fsbwqdO#yg ai36H~C)fkLS=m5}S%EMesB}3v$pZkELZFKP literal 625 zcmWIWW@Zs#U|`^2Flke_So?na1y&%B8Hho2qFzBp!RZrc*ck!{sLLuy$D&R+r!heS zXpR^Vv%$!&ghqge_E~SelV{EcpEz;m`h_*?Skdg5ddyQm2&hK@h&h2cGcP5z z0_+|SU9Zp+I$-1>u-&$syTA%$m_yI8k0|5Sij=2B; diff --git a/ext/phar/tests/zip/files/frontcontroller10.phar.zip b/ext/phar/tests/zip/files/frontcontroller10.phar.zip index c37cb381fbed023f0f7a757b783f245dcab01fc3..84d962e9931aef153a3f48eb1780bb46c92b4ea5 100644 GIT binary patch literal 796 zcmWIWW@cdk1C_pg7WVz8znCyGFn};8gAhYzUP@|(UO`4dUMU|#1+UA+Z9oYKu(1aU zbCo3)#ix|!7HFu%2fGG^xdufm1$YDi**h)0ll;&PLJv%YLAk&r WODJdqyjj^mI+%cPI*`r>I}!k-BF>Ef literal 471 zcmWIWW@Zs#U|`^2aB5Sxu(<;ZW#U%P|?9zA>cxXV9sLUzK6 z>;jLPj0x&`s*G}djvrfMSi)RdHcz-JSR@^xyNj7I0L2YXF-{EgfOhW(Vm=@STAx^? zUtCg}1agRP-(9XI1DT`mYr72h%y=N2A)qA8Ubn_~FW0|_zBh+**O*lORud^HuVX)V z{9#7A^oPn4&rNH7sZG5-MR{@Y22xyRky&W%CfHxx(G|ezzOJguO2#qJjp&NuAeh7ndfvJ>GXa;z*vVn9k M0pWBYodk9y0G%?)<^TWy literal 461 zcmWIWW@Zs#U|`^2aBfq#u(<;ZW#U%P|?9zA>cxXV9sLUzK6 z>;jLPj0x&`s*G}djvrfMSi)RdHcz-JSR@^xyNj7I0L2ZGdPY1`fOc;JVm=@STAx^? zUtCg}1agRL??J962Z@&VwnsNr1bpB$;h1PIbR{R;meoF5@8-d~PxX86?c?pyJA8)S zc=O$z7jtI?22S$XywlUSds%?s%I~WJ&+ItkdT~ocy6A`cJL0N;CNu=IZ#wEHV$*f0 z^wU!Pc;TuA>ldfqiTa*!xHjRKo#fePITgDiMIIXX>+uM@vP)z160qgC?_`sb+Wm85 z)}NUloaF<&8JQRuaEBt$6G#9ars&$xJ&w@R0%W2FLx49c8%UlB2#bNV3oybM7yy=U BlBWOw diff --git a/ext/phar/tests/zip/files/frontcontroller12.phar.zip b/ext/phar/tests/zip/files/frontcontroller12.phar.zip index c086c4d4a43a4cb647ec15b11a81e2d4dbfe3496..f58118ebb2d8499e73dd749dfaa647f199276bbc 100644 GIT binary patch literal 786 zcmWIWW@cdk1GT<=7WVz8znCyGFn};8gAhYzUP@|(UO`4dUMU|#1+UA+Z9oYKu(1aU zbCo3)#ix|!7HFu%2fGG^xdufm1$YDi**(<;ZW#U%P|?9zA>cxXV9sLUzK6 z>;jLPj0x&`s*G}djvrfMSi)RdHcz-JSR@^xyNj7I0L2YgEnPp(0NTA3i1~mRXnkUl zesM`@638LGy%)Kf3?y3L*LE51nejk4LqJKGb?erZ;RnxWDeo?j*6zKxkCpZA+~Nl{ z_w(MTiEoVjr4t=iEP5;dmhj8HHG*fd*qXM9`U#4u=HFnby?Akdl&S7t-#K#bT5J-P z&68FB2hIQWhf{^;mr-=f+S2kRd0dje9qLTgn?GkvmblgE0Vw(& zsiu7{2g-slA5b4qTVj!ZaY<Q%Z9SG*seU{latcfV$%2Jsf>P;+_3{13Z0PgETa)73}SJxlkRA>DjD;bRs+}oYR;f2J|Qhv%vzX z7*iwIlL~32dC4W2`FRS!K-18yt_|>JWCCgg18hMKlY`JWA^_bG^zcU*VgY0liVbwr v&;tfx+FKwqQ4eb{p&No8N(e(#f$0eBFDzje;LXYgQpo~@azJ&3;4}vSVl|4W literal 531 zcmWIWW@Zs#U|`^2FmF@0So?na1y&%B8Hho2qFzBp!RZrc*ck!{sLLuy$D&R+r!heS zXpR^Vv%$!&ghqge_E~SelV{EcpEz;m`h_*?Skdgz*_V@*57bix#C$*ubV_28 zesM`@639_tGahiA@X*<`Nz31t$alP12Mpx6%;EBEI@b-NUJk~cmV92f&>5n diff --git a/ext/phar/tests/zip/files/frontcontroller3.phar.zip b/ext/phar/tests/zip/files/frontcontroller3.phar.zip index 40c1d4994b313927ce0369daeda06ace70309b54..c49a2667f3ab51b4686a65951331acc104480f32 100644 GIT binary patch delta 224 zcmdnRwtJFflSPFirH=5#&lM%}XxH%+FIO)=){* z@dU6({5;M?-$^DF`VEQazeFvatf29BFHUk-*3Ob40Ip}voZ)l l+zKWu7#SwdXOx(HkBJ9t##<(7#toA>nYG#e0Nu{O004~NK6n5C delta 234 zcmdnMwu_B7z?+$c0SvsSdrjmuNEV003`BI)4BF diff --git a/ext/phar/tests/zip/files/frontcontroller4.phar.zip b/ext/phar/tests/zip/files/frontcontroller4.phar.zip index 4dc83408b059aa3f388e8c0ce12584827a315f1b..c73337456e2566acaac37aad333e19029c60cc66 100644 GIT binary patch delta 174 zcmdnSwuX&2z?+$c0SsjN_D$q98qt3`XakCmwQUM5xQcFsU@)T4Ot$Dd>c_+TIk>%w|P0q+yP|D9Q zC{{?xOi{?oFHtBe&5OxXvgV!a$SBRoJ2{3?i5X(EDVW~L=nbZ4F-cEWVp2zQ%H(h+ k2beT-9V5f!iHs7HFEH_d#qKjnGj5ywn@O9Ei3#K*02%T+H~;_u diff --git a/ext/phar/tests/zip/files/frontcontroller5.phar.zip b/ext/phar/tests/zip/files/frontcontroller5.phar.zip index 0ab0472101505cd2e2107ff9bf5dfa1f23d700c0..aca9a88acf2f929c2bff6c9e188fe9658ba14470 100644 GIT binary patch literal 707 zcmWIWW@cdk1DU>k7Hi*czrYOSfiNqB5JRF~K}JDdDIY@xugk@4j1Ywk3>lgE0Vw){ z-YT|F1M5dL9vpirZrb;az;LctB{hJqL7zgqEJ+t z7n7%C%~h6I6rWO>TcDv5@9Gz(qo5KW>>3p28U)l8AMfGl6B6(2?;GIh;~J!)X{}&y z$IFH4CCs46Do7_HD1>tw6U2bQ0K#mrAS}kz2o3^;w9>rflFa-(1z?bBXjaz-cr!8q zHG%=Q2!Y8#XdKalZU}npAPlhpG6}^Mx@qVEgD{O7m_QQsum%&lA?TrmFvJ;b2r%Zc Vgjs+$D;r293lPcy)%Al@Bmk6BlLG(% literal 554 zcmWIWW@Zs#U|`^2uxeAcSo?na1y&%B8Hho2qFzBp!RZrc*ck!{sLLuy$D&R+r!heS zXpR^Vv%$!&ghqge_E~SelV{EcpEz;m`h_*?SkdfAd?{$x2GlbFi1~mR=#<1F z{o<0+B#@(2yZyNjDabgyuj`WE)O@Jp+-7?h4%XFeNBtUih{))O&W^7A-IMqJVD;+U z4UDE?M_0}A{m$H!zS_-rW{3BIy_cWuJrO82y=@_j=;B`!RM(g{?B&<@(R6;6_&471 zyVM+cMYZzs84EpKS6()r;Pk0D+DUPJ%$ArZ-lq<)+jsKs(alP!#2R16%<(vEI@b- JNZT=jcmS`#j!ggn diff --git a/ext/phar/tests/zip/files/frontcontroller6.phar.zip b/ext/phar/tests/zip/files/frontcontroller6.phar.zip index bf98255fe9a9d85b6c41c16d9eb104d9a5e93cd7..6c0c489c0d07ebcec9f558cdc2ee9c7dff85c9be 100644 GIT binary patch literal 709 zcmWIWW@cdk1KGZP7Hi*czrYOSfiNqB5JRF~K}JDdDIY@xugk@4j1Ywk3>lgE0Vw)x z`?5Dp2g-slA5b4qTVj!ZaY<Lv%vzf7*iuS5ERl%^O8$4^YavdfvTZd zT^r!d$OO~~2H2tmCI_K$L=d_m=<$Ov!~)196kF(~p$81YG+tm5Nz}s{Oz4K7hZ4dN bSFj<#xW^J^0p6@^AeAgYC!&ghqge_E~SelV{EcpEz;m`h_*?SkdfItm6{v2I`pv#C$*ubV_28 zesM`@639`a-QHY>3`7{dTONIU(Ur^f)wa-X4~K?JdXc1NffVBX_s2E)jdXOUY^Z=Qt0UY4X3W_lX N79hL^q@5W-JOFUbjG6!d diff --git a/ext/phar/tests/zip/files/frontcontroller7.phar.zip b/ext/phar/tests/zip/files/frontcontroller7.phar.zip index 02fc3e27b6970ab9ce9db3c5ee8f2436574ac197..8fcd3bbc2af12b89494c88997530f3f2c72ec38d 100644 GIT binary patch literal 710 zcmWIWW@cdk1BJeQ7Hi*czrYOSfiNqB5JRF~K}JDdDIY@xugk@4j1Ywk3>lgE0Vw)b z^_JGp0Lp?eA5b4qTVj!ZaY<|DL=oUSRo}dMIkT0 zM4_lOFD6gPnyW0aC_be$w?IQB-qkNmM?ob%*fl83H3+CHKHkI8CnVn4-#5V1$2CYp z(^|paj+YD7SD2xZRgg|ZXb9&tCWrw;0)*LMp;(Nm5gZB%X{C9|C7Jno3cyg+(5$Wv z@MdHJY6JspaRQTr&^TfU-4OH$LKtEJWD<%lbkooS24NZ>FpVVYVGSm9L(oGBVTc>p Z5MbnE39|riRyL4I79f-Zs+$B(lmH!&ghqge_E~SelV{EcpEz;m`h_*?SkdfQI7zOe8>nY85c2^s&?$*U z`o$%sNgzkbcAw@tWFW%&{cqRlrQIw|@)v$Ns4NKB8uHSMBU9KzQBBco?Z3TO@6Jp- zS0(OqB1<_r@XW5?yiJ=YE}mE7!e(Ky^!{qqr~|6mk|!jdwkM=7b-a=Df7&IZ%X>dI z+-nzK;n?_D`N$JFzSB9A0#|(DQ4#-h$>_w;i-iv??HT63i)XXGm=<>wa^E2LzmDCFgrC=`|E#pEejbCo3)#ix|!7HFu%yZVLc zD5%5-y9R~11_5=&$9p*Xgv2}h`v!RWxCUuxS}WMw@p7St!S-uOn_!{G3JyJ>TQR*3 z3_K%LjlwyN31Yy217V0ppxZGug2PN9tu!yWBr`ux0cehfW_2y9QHsw}kHXx*4Rk|V zQGQ;wUOI@xG!STlaey}?6VO^Pz?KAHau6Cvv)B@T4c&;u4>njJ7n wChB1gW^_Z)0~ujRIoJ@aL5^++dhj9)IRrEWZ(s*_v$BDdvjSlzP%$Lf0hXn=%K!iX literal 684 zcmWIWW@Zs#U|`^2uxV4b;BC*=W&`qAfEYw4>J?-Z6rVnE#+-#A07d2YYe}16Dp|oQ zvkKBd3YpLp3g={Oi=< zcGAj_qg%;g>!U||3npo=%AdtCW9u8?16bt@C zPq+iT8JQRua7P5tJ4gT$E$DjCqXeNr3&>2=14au0frm87W7C#Xz2qo lk)jA)BYN~8H0}j5Q6nqBn-vuCzy!m}z|Y9Q&)%ulvt^u zsc8+BDo;%UsnJj>&qypu1*%ZeQBcavOG&K&84Kj(mFDE=C_uC+Wfi0=DcIU6D5d4+ z>nA0G6@xqg7KGRp;1K{c0i+kC5H1!BvNAO}BVR!&Kfj<@Atf_KAuqo~p{O)3CQr$l zt1Pi7KBY9bKtmzJVrGrRJ1A!(O2Y53w0j&iCY^eh#2cdDL6?9Y3QwqWq zD0MFLZ6q8`>@MmGdKkP(JV0vm!g$k7c!4_<^JcY%iB4eS7KRyL4w NRv^p-DwY8UI{=Ju!aM)~ literal 697 zcmWIWW@Zs#U|`^2ux(Sf;BC*=W&`qAfEYw4>J?-Z6rVnE#+-#A07d2YYe}16Dp|oQ zvkKBd3YpLp3gtDJ~ zEV3==U3u+Gv+VKzuFB_^GcMk^MAn?Gh%vP3