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

Albert Astals Cid aacid at kde.org
Wed Apr 15 15:03:04 PDT 2009


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




More information about the poppler mailing list