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 [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]