clone 585497 -1
reassign -1 libpoppler5
forcemerge 578050 -1
block 585497 by -1
thanks

It is actually a known bug in poppler. Let's clone it there.
This bug can be reproduced with langref.pdf file from systemtap-doc
package.

22 червня 2010 о 20:50 +0200 Eugeniy Meshcheryakov написав(-ла):
> I tried to debug this, but it looks very strange.
> 
> The cmap looks like this:
> 
> 311 0 obj
> <</Length 294>>stream
> /CIDInit /ProcSet findresource begin
> 12 dict begin
> begincmap
> /CMapType 2 def
> /CMapName/R857 def
> 1 begincodespacerange
> <0000><ffff>
> endcodespacerange
> 3 beginbfrange
> <000f><000f><2022>
> <0066><0066><007b>
> <0067><0067><007d>
> endbfrange
> endcmap
> CMapName currentdict /CMap defineresource pop
> end end
> 
> endstream
> endobj
> 
> From reading of pdf spec I can say that bfrange syntax is valid.
> parseCMap1() function that calls error() is in poppler. The code there
> looks like this:
> 
>  if (!strcmp(tok3, "[")) {
>    ....
>  } else if (tok3[0] == '<' && tok3[n3 - 1] == '>') {
>    ....
>  } else {
>    error(-1, "Illegal entry in bfrange block in ToUnicode CMap");
>  }
> 
> On call to error gdb shows:
> 
> (gdb) print  (char *)tok3
> $15 = 0x7fffda543fc0 "<007d>"
> (gdb) print  n3
> $16 = 6
> (gdb) print  tok3[n3-1]
> $18 = 62 '>'
> (gdb) print (tok3[0] == '<' && tok3[n3 - 1] == '>')
> $19 = true
> 
> Now if anyone can tell me why branch with call to error() is executed
> instead of previous one...
> 
> 22 червня 2010 о 12:52 -0400 Frank Ch. Eigler написав(-ла):
> > #0  error (pos=-1, 
> >     msg=0x351ad4bbf8 "Illegal entry in bfrange block in ToUnicode CMap")
> >     at Error.cc:56
> > #1  0x000000351aca2f8a in CharCodeToUnicode::parseCMap1 (
> >     this=<value optimized out>, getCharFunc=<value optimized out>, 
> >     data=<value optimized out>, nBits=<value optimized out>)
> >     at CharCodeToUnicode.cc:343


Attachment: signature.asc
Description: Digital signature

Reply via email to