Package: xpdf
Version: 3.03-10
Severity: important

Dear Maintainer,

since I upgraded from debian 6.x to 7.1 I cannot print any pdf documents with
xpdf anymore; xpdf always crashes in libpoppler.  (This may well be a bug in
libpoppler.)  If you need more information, e.g. from the core dump, just ask.
Details below.

   * What led up to the situation?

Just printing any pdf document from xpdf.  It does not matter whether output
is to a file or to the printer.

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

To reproduce:

 - Run seamonkey and load www.openstreetmap.org and maximize the window.
 - Hit ctrl-p and print the page into the file mozilla.pdf.
 - Close seamonkey
 - run "xpdf mozilla.pdf"
 - Hit ctrl-p in xpdf, select "Print to file" and hit the "Print" button

Actually, it happens for me with all pdf files I try to print.

   * What was the outcome of this action?

xpdf.real crashes in some libpoppler function and leaves a core dump:

--> segmentation fault (core dumped)  nice -20 xpdf mozilla.pdf

When printing to a file it also leaves a 8192 byte long *.ps file that may
provide some information of what went wrong.

-- snip --
$ gdb /usr/bin/xpdf.real core
(gdb) bt
#0  0xb752580e in GooHash::find(GooString*, int*) ()
   from /usr/lib/i386-linux-gnu/libpoppler.so.19
#1  0xb75259fb in GooHash::lookup(GooString*) ()
   from /usr/lib/i386-linux-gnu/libpoppler.so.19
#2  0xb74ce26f in GlobalParams::getPSFont(GooString*) ()
   from /usr/lib/i386-linux-gnu/libpoppler.so.19
#3  0xb751189f in PSOutputDev::setupFont(GfxFont*, Dict*) ()
   from /usr/lib/i386-linux-gnu/libpoppler.so.19
#4  0xb75126c6 in PSOutputDev::setupFonts(Dict*) ()
   from /usr/lib/i386-linux-gnu/libpoppler.so.19
#5  0xb7512845 in PSOutputDev::setupResources(Dict*) ()
   from /usr/lib/i386-linux-gnu/libpoppler.so.19
#6  0xb7512daa in PSOutputDev::writeDocSetup(PDFDoc*, Catalog*, int, int, bool)
    () from /usr/lib/i386-linux-gnu/libpoppler.so.19
#7  0xb7514de4 in PSOutputDev::init(void (*)(void*, char*, int), void*, 
PSFileType, char*, PDFDoc*, XRef*, Catalog*, int, int, PSOutMode, int, int, 
int, int, bool, int, int, bool) () from /usr/lib/i386-linux-gnu/libpoppler.so.19
#8  0xb75152f2 in PSOutputDev::PSOutputDev(char const*, PDFDoc*, XRef*, 
Catalog*, char*, int, int, PSOutMode, int, int, bool, int, int, int, int, bool, 
bool)
    () from /usr/lib/i386-linux-gnu/libpoppler.so.19
#9  0xb7796e5d in ?? ()
#10 0xb73b220f in XtCallCallbackList () from /usr/lib/i386-linux-gnu/libXt.so.6
#11 0xb767dae5 in ?? () from /usr/lib/i386-linux-gnu/libXm.so.2
#12 0xb73e86b0 in ?? () from /usr/lib/i386-linux-gnu/libXt.so.6
#13 0xb73e95cc in _XtTranslateEvent () from /usr/lib/i386-linux-gnu/libXt.so.6
#14 0xb73c0d00 in XtDispatchEventToWidget ()
   from /usr/lib/i386-linux-gnu/libXt.so.6
#15 0xb73c14aa in ?? () from /usr/lib/i386-linux-gnu/libXt.so.6
#16 0xb73c1605 in XtDispatchEvent () from /usr/lib/i386-linux-gnu/libXt.so.6
#17 0xb73cd88e in XtAppProcessEvent () from /usr/lib/i386-linux-gnu/libXt.so.6
#18 0xb73c1a88 in XtAppMainLoop () from /usr/lib/i386-linux-gnu/libXt.so.6
#19 0xb778f67e in ?? ()
#20 0xb777da82 in main ()
-- snip --

-- mozilla.ps --
%!PS-Adobe-3.0
%Produced by poppler pdftops version: 0.18.4 (http://poppler.freedesktop.org)
%%Creator: cairo 1.9.5 (http://cairographics.org)
%%LanguageLevel: 2
%%DocumentSuppliedResources: (atend)
%%DocumentMedia: plain 596 842 0 () ()
%%BoundingBox: 0 0 596 842
%%Pages: 2
%%EndComments
%%BeginDefaults
%%PageMedia: plain
%%EndDefaults
%%BeginProlog
%%BeginResource: procset xpdf 3.00 0
%%Copyright: Copyright 1996-2004 Glyph & Cog, LLC
/xpdf 75 dict def xpdf begin
% PDF special state
/pdfDictSize 15 def
/pdfSetup {
  3 1 roll 2 array astore
  /setpagedevice where {
    pop 3 dict begin
      /PageSize exch def
      /ImagingBBox null def
      /Policies 1 dict dup begin /PageSize 3 def end def
      { /Duplex true def } if
    currentdict end setpagedevice
  } {
    pop pop
  } ifelse
} def
/pdfStartPage {
  pdfDictSize dict begin
  /pdfFillCS [] def
  /pdfFillXform {} def
  /pdfStrokeCS [] def
  /pdfStrokeXform {} def
  /pdfFill [0] def
  /pdfStroke [0] def
  /pdfFillOP false def
  /pdfStrokeOP false def
  /pdfLastFill false def
  /pdfLastStroke false def
  /pdfTextMat [1 0 0 1 0 0] def
  /pdfFontSize 0 def
  /pdfCharSpacing 0 def
  /pdfTextRender 0 def
  /pdfPatternCS false def
  /pdfTextRise 0 def
  /pdfWordSpacing 0 def
  /pdfHorizScaling 1 def
  /pdfTextClipPath [] def
} def
/pdfEndPage { end } def
% PDF color state
/cs { /pdfFillXform exch def dup /pdfFillCS exch def
      setcolorspace } def
/CS { /pdfStrokeXform exch def dup /pdfStrokeCS exch def
      setcolorspace } def
/sc { pdfLastFill not { pdfFillCS setcolorspace } if
      dup /pdfFill exch def aload pop pdfFillXform setcolor
     /pdfLastFill true def /pdfLastStroke false def } def
/SC { pdfLastStroke not { pdfStrokeCS setcolorspace } if
      dup /pdfStroke exch def aload pop pdfStrokeXform setcolor
     /pdfLastStroke true def /pdfLastFill false def } def
/op { /pdfFillOP exch def
      pdfLastFill { pdfFillOP setoverprint } if } def
/OP { /pdfStrokeOP exch def
      pdfLastStroke { pdfStrokeOP setoverprint } if } def
/fCol {
  pdfLastFill not {
    pdfFillCS setcolorspace
    pdfFill aload pop pdfFillXform setcolor
    pdfFillOP setoverprint
    /pdfLastFill true def /pdfLastStroke false def
  } if
} def
/sCol {
  pdfLastStroke not {
    pdfStrokeCS setcolorspace
    pdfStroke aload pop pdfStrokeXform setcolor
    pdfStrokeOP setoverprint
    /pdfLastStroke true def /pdfLastFill false def
  } if
} def
% build a font
/pdfMakeFont {
  4 3 roll findfont
  4 2 roll matrix scale makefont
  dup length dict begin
    { 1 index /FID ne { def } { pop pop } ifelse } forall
    /Encoding exch def
    currentdict
  end
  definefont pop
} def
/pdfMakeFont16 {
  exch findfont
  dup length dict begin
    { 1 index /FID ne { def } { pop pop } ifelse } forall
    /WMode exch def
    currentdict
  end
  definefont pop
} def
% graphics state operators
/q { gsave pdfDictSize dict begin } def
/Q {
  end grestore
  /pdfLastFill where {
    pop
    pdfLastFill {
      pdfFillOP setoverprint
    } {
      pdfStrokeOP setoverprint
    } ifelse
  } if
} def
/cm { concat } def
/d { setdash } def
/i { setflat } def
/j { setlinejoin } def
/J { setlinecap } def
/M { setmiterlimit } def
/w { setlinewidth } def
% path segment operators
/m { moveto } def
/l { lineto } def
/c { curveto } def
/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
      neg 0 rlineto closepath } def
/h { closepath } def
% path painting operators
/S { sCol stroke } def
/Sf { fCol stroke } def
/f { fCol fill } def
/f* { fCol eofill } def
% clipping operators
/W { clip newpath } def
/W* { eoclip newpath } def
/Ws { strokepath clip newpath } def
% text state operators
/Tc { /pdfCharSpacing exch def } def
/Tf { dup /pdfFontSize exch def
      dup pdfHorizScaling mul exch matrix scale
      pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put
      exch findfont exch makefont setfont } def
/Tr { /pdfTextRender exch def } def
/Tp { /pdfPatternCS exch def } def
/Ts { /pdfTextRise exch def } def
/Tw { /pdfWordSpacing exch def } def
/Tz { /pdfHorizScaling exch def } def
% text positioning operators
/Td { pdfTextMat transform moveto } def
/Tm { /pdfTextMat exch def } def
% text string operators
/cshow where {
  pop
  /cshow2 {
    dup {
      pop pop
      1 string dup 0 3 index put 3 index exec
    } exch cshow
    pop pop
  } def
}{
  /cshow2 {
    currentfont /FontType get 0 eq {
      0 2 2 index length 1 sub {
        2 copy get exch 1 add 2 index exch get
        2 copy exch 256 mul add
        2 string dup 0 6 5 roll put dup 1 5 4 roll put
        3 index exec
      } for
    } {
      dup {
        1 string dup 0 3 index put 3 index exec
      } forall
    } ifelse
    pop pop
  } def
} ifelse
/awcp {
  exch {
    false charpath
    5 index 5 index rmoveto
    6 index eq { 7 index 7 index rmoveto } if
  } exch cshow2
  6 {pop} repeat
} def
/Tj {
  fCol
  1 index stringwidth pdfTextMat idtransform pop
  sub 1 index length dup 0 ne { div } { pop pop 0 } ifelse
  pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32
  4 3 roll pdfCharSpacing pdfHorizScaling mul add 0
  pdfTextMat dtransform
  6 5 roll Tj1
} def
/Tj16 {
  fCol
  2 index stringwidth pdfTextMat idtransform pop
  sub exch div
  pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32
  4 3 roll pdfCharSpacing pdfHorizScaling mul add 0
  pdfTextMat dtransform
  6 5 roll Tj1
} def
/Tj16V {
  fCol
  2 index stringwidth pdfTextMat idtransform exch pop
  sub exch div
  0 pdfWordSpacing pdfTextMat dtransform 32
  4 3 roll pdfCharSpacing add 0 exch
  pdfTextMat dtransform
  6 5 roll Tj1
} def
/Tj1 {
  0 pdfTextRise pdfTextMat dtransform rmoveto
  currentpoint 8 2 roll
  pdfTextRender 1 and 0 eq pdfPatternCS not and {
    6 copy awidthshow
  } if
  pdfTextRender 3 and dup 1 eq exch 2 eq or {
    7 index 7 index moveto
    6 copy
    currentfont /FontType get 3 eq { fCol } { sCol } ifelse
    false awcp currentpoint stroke moveto
  } if
  pdfTextRender 4 and 0 ne pdfPatternCS or {
    8 6 roll moveto
    false awcp
    /pdfTextClipPath [ pdfTextClipPath aload pop
      {/moveto cvx}
      {/lineto cvx}
      {/curveto cvx}
      {/closepath cvx}
    pathforall ] def
    currentpoint newpath moveto
  } {
    8 {pop} repeat
  } ifelse
  0 pdfTextRise neg pdfTextMat dtransform rmoveto
} def
/TJm { pdfFontSize 0.001 mul mul neg 0
       pdfTextMat dtransform rmoveto } def
/TJmV { pdfFontSize 0.001 mul mul neg 0 exch
        pdfTextMat dtransform rmoveto } def
/Tclip { pdfTextClipPath cvx exec clip newpath
         /pdfTextClipPath [] def } def
/Tclip* { pdfTextClipPath cvx exec eoclip newpath
         /pdfTextClipPath [] def } def
% Level 2 image operators
/pdfImBuf 100 string def
/pdfIm {
  image
  { currentfile pdfImBuf readline
    not { pop exit } if
    (%-EOD-) eq { exit } if } loop
} def
/pdfImM {
  fCol imagemask
  { currentfile pdfImBuf readline
    not { pop exit } if
    (%-EOD-) eq { exit } if } loop
} def
/pr { 2 index 2 index 3 2 roll putinterval 4 add } def
/pdfImClip {
  gsave
  0 2 4 index length 1 sub {
    dup 4 index exch 2 copy
    get 5 index div put
    1 add 3 index exch 2 copy
    get 3 index div put
  } for
  pop pop rectclip
} def
/pdfImClipEnd { grestore } def
% shading operators
/colordelta {
  false 0 1 3 index length 1 sub {
    dup 4 index exch get 3 index 3 2 roll get sub abs 0.004 gt {
      pop true
    } if
  } for
  exch pop exch pop
} def
/funcCol { func n array astore } def
/funcSH {
  dup 0 eq {
    true
  } {
    dup 6 eq {
      false
    } {
      4 index 4 index funcCol dup
      6 index 4 index funcCol dup
      3 1 roll colordelta 3 1 roll
      5 index 5 index funcCol dup
      3 1 roll colordelta 3 1 roll
      6 index 8 index funcCol dup
      3 1 roll colordelta 3 1 roll
      colordelta or or or
    } ifelse
  } ifelse
  {
    1 add
    4 index 3 index add 0.5 mul exch 4 index 3 index add 0.5 mul exch
    6 index 6 index 4 index 4 index 4 index funcSH
    2 index 6 index 6 index 4 index 4 index funcSH
    6 index 2 index 4 index 6 index 4 index funcSH
    5 3 roll 3 2 roll funcSH pop pop
  } {
    pop 3 index 2 index add 0.5 mul 3 index  2 index add 0.5 mul
    funcCol sc
    dup 4 index exch mat transform m
  
-- snip --
(The file ends in a line with two spaces and no newline.)

   * What outcome did you expect instead?

Successful printing instead of crash.


-- System Information:
Debian Release: 7.1
Architecture: i386 (i686)

Kernel: Linux 3.11.1 (SMP w/4 CPU cores; PREEMPT)
Locale: LANG=en_US.ISO-8859-15, LC_CTYPE=de_DE@euro (charmap=ISO-8859-15)
Shell: /bin/sh linked to /bin/bash

Versions of packages xpdf depends on:
ii  lesstif2      1:0.95.2-1.1
ii  libc6         2.13-38
ii  libgcc1       1:4.7.2-5
ii  libpoppler19  0.18.4-6
ii  libstdc++6    4.7.2-5
ii  libx11-6      2:1.5.0-1+deb7u1
ii  libxt6        1:1.1.3-1+deb7u1

Versions of packages xpdf recommends:
pn  cups-bsd       <none>
pn  gsfonts-x11    <none>
ii  poppler-data   0.4.5-10
pn  poppler-utils  <none>

xpdf suggests no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to