[poppler] Fix rare segmentation fault in CID font vertical exceptions assignment

Peter A. Kerzum kerzum at yandex-team.ru
Tue Jun 28 18:30:40 PDT 2011


Albert,

please excuse me for late reply
actually I have quite a collection of PDFs that crash poppler in different 
ways, even with rendering disabled

If you are still interested, I can share

- Peter

В сообщении от Четверг 16 апреля 2009 02:03:04 автор Albert Astals Cid 
написал:
> A Dimecres, 15 d'abril de 2009, Peter Kerzum va escriure:
> > Good morning!
> > 
> > While using xpdf we encountered an error that applies both to xpdf and
> > poppler. It seems to be a result of unattended copy-paste - index of
> > horizontal exception is applied to vertical
> > 
> > Please consider applying the following patch:
> > 
> > --- a/GfxFont.cc
> > +++ b/GfxFont.cc
> > @@ -1590,11 +1590,11 @@ GfxCIDFont::GfxCIDFont(XRef *xref, char *tagA,
> > Ref idA, GooString *nameA,
> > 
> >           if (obj3.arrayGet(k, &obj4)->isNum() &&
> >           
> >               obj3.arrayGet(k+1, &obj5)->isNum() &&
> >               obj3.arrayGet(k+2, &obj6)->isNum()) {
> > 
> > -           widths.excepsV[widths.nExceps].first = j;
> > -           widths.excepsV[widths.nExceps].last = j;
> > -           widths.excepsV[widths.nExceps].height = obj4.getNum() *
> > 0.001; -           widths.excepsV[widths.nExceps].vx = obj5.getNum() *
> > 0.001; -           widths.excepsV[widths.nExceps].vy = obj6.getNum() *
> > 0.001; +           widths.excepsV[widths.nExcepsV].first = j;
> > +           widths.excepsV[widths.nExcepsV].last = j;
> > +           widths.excepsV[widths.nExcepsV].height = obj4.getNum() *
> > 0.001; +           widths.excepsV[widths.nExcepsV].vx = obj5.getNum() *
> > 0.001; +           widths.excepsV[widths.nExcepsV].vy = obj6.getNum() *
> > 0.001;
> > 
> >             ++j;
> >             ++widths.nExcepsV;
> >           
> >           } else {
> 
> Can we get a sample PDF that has this problem?
> 
> Albert

-- 
Пётр Керзум
Группа разработки поисковой платформы
СПб, тел. 8508


More information about the poppler mailing list