From 1b8cb5255508f8d719fd16f19fc1fcb3fc035ba1 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Mon, 28 Sep 2015 15:09:24 +0200 Subject: [PATCH] Prevent `PartialEvaluator_buildFormXObject` from failing if the `Matrix` or `BBox` contains indirect objects This patch fixes yet another instance of bad PDF data, specifically a case where the `BBox` array contains indirect objects (i.e. `Ref`s). Fixes the missing image in http://www.int.washington.edu/talks/WorkShops/int_08_37W/People/Franz_M/Franz.pdf#page=24. *Note:* There are missing images on a number of the pages in that file. --- src/core/evaluator.js | 4 ++-- test/pdfs/.gitignore | 1 + test/pdfs/franz_2.pdf | Bin 0 -> 2828 bytes test/test_manifest.json | 8 ++++++++ 4 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 test/pdfs/franz_2.pdf diff --git a/src/core/evaluator.js b/src/core/evaluator.js index 3e0a98d46..dcba0e038 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -126,8 +126,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { xobj, smask, operatorList, initialState) { - var matrix = xobj.dict.get('Matrix'); - var bbox = xobj.dict.get('BBox'); + var matrix = xobj.dict.getArray('Matrix'); + var bbox = xobj.dict.getArray('BBox'); var group = xobj.dict.get('Group'); if (group) { var groupOptions = { diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 842c2d3aa..de2d8b754 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -3,6 +3,7 @@ !tracemonkey.pdf !franz.pdf +!franz_2.pdf !issue2391-1.pdf !issue2391-2.pdf !issue5801.pdf diff --git a/test/pdfs/franz_2.pdf b/test/pdfs/franz_2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ac1219ce18206c9bbb2564c93cbaef2669a53eea GIT binary patch literal 2828 zcmai0U5Fc16h2ukg<-3pwU(lAU$(BW$^2xq$x2z-WH;M&+ilEF?a#KzWO9?tb~2OR znXGN;gA~LU!Rn*NP6J66%Z#MU)57@Ed%+O`lB z!3&WhVAFC+A`o%Jfli;OZE!n`5?*fWd6w(@t7W8!2Ff~{iOm(^+iN^z>nhgHRFhu{ z&nF8Zf|&of6$%IQq)Ied4<)+Rt%XvKvM<_-dW?I`u*GyES*nz9TYBZT&hn$vkO^SI zqAg|C6}7lco&rsa73#54(m^P=)mAPlDzPv4%DW1!NMvU5;*f}OO}%srxdcI?K4xP{ zQc9#Nnu<;<#LNW@p)-A&nGI#qY;jhz>EaAkXUU@ICc&oyfMXE|*G0E8ume%kTdDz=z)BqE}f~QRm%|3(pGiFSWoo9h+B|ih~a+ zYiNnJ0oXHXbvo`C1894pKv#D9%vrYg9_)dAFb;TGcF>uxRE|lEzVzIFJ^2MvWVxRv zuI*#HzU>nj5Fo|SbAL0!(}ZggK1%q5uoI%sIl^|!sw3_oo)TuYg!oIuFEkUlmcVr$ z*ywW;ecrY^0(r(v#78&nCUHJOta)|EL;Gup3-!QmBSy}#Pe=>2;T5g`%)Jiq+)o4B z*#O|?w*apm9@r)i0=#kx;8u2Edt8E-8d*cqrN)b>{qI{_j}HUv{T$%wXIoqU zeYLgq^lOaq8^8~)-4&bC7n4l=3=q{JE&G?a$Ax1vS})vm8jj0*uJjl^9Mvn`aJ6n# z`)DT|X(GJ}05@5*mg_=Rv*^4py*ex_{Mvoll7a$P1}115OD#U`(3pzU^X-Q@Km{*H6+8X=f3%OydG6}5 z9tO`}J%Jec;ZY|nl0Jx28^PupaZ3A!^-cxxA+*1B!CxVt1IROZrDfup6Hb{|TBX$< zz71!<1r82)`0D|KDl9<}($E0`J~VK|K@SJ5G|tiLKmZp;db&`FXSwLH1P^h}LpkRn zba6KEzX!!txHc6tFzr|EAMJs5L;FVi`}(2oxbeIMltxut4|VD@xqnw_w^es*4D_KE2RosDhZ8kNB`dUCze!~Mu87)>I6j>YvMEtbr_F|Eibl5CqS5lY>RoTe!g6N@Lx%Kz&