Floating point exception when processing this PDF file
Tested on Debian testing, libcairo2 version 1.16.0 poppler-utils version 0.71.0 and Ubuntu 19.04 with poppler 0.80.0, same libcairo2.
This command
pdftocairo -pdf food-1.pdf out.pdf
results in "Floating point exception" error. The file is here: food-1.pdf
Here is the output from GDB:
(gdb) run
Starting program: /usr/bin/pdftocairo -pdf food-1.pdf out.pdf
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Program received signal SIGFPE, Arithmetic exception.
0x0000555555572c20 in CairoRescaleBox::downScaleImage (this=this@entry=0x7fffffffd560, orig_width=9472, orig_height=orig_height@entry=1, scaled_width=scaled_width@entry=8192, scaled_height=scaled_height@entry=0, start_column=start_column@entry=0, start_row=0, width=8192, height=0, dest_surface=0x5555555e3ba0) at ./poppler/CairoRescaleBox.cc:305
305 ./poppler/CairoRescaleBox.cc: No such file or directory.
(gdb) bt
#0 0x0000555555572c20 in CairoRescaleBox::downScaleImage (this=this@entry=0x7fffffffd560, orig_width=9472, orig_height=orig_height@entry=1, scaled_width=scaled_width@entry=8192, scaled_height=scaled_height@entry=0, start_column=start_column@entry=0, start_row=0, width=8192, height=0, dest_surface=0x5555555e3ba0) at ./poppler/CairoRescaleBox.cc:305
#1 0x0000555555570c78 in RescaleDrawImage::getSourceImage (maskColorsA=0x0, colorMapA=<optimized out>, printing=<optimized out>, scaledHeight=<optimized out>, scaledWidth=<optimized out>, height=1, widthA=9472, str=0x555555610840, this=0x7fffffffd560) at ./poppler/CairoOutputDev.cc:3170
#2 CairoOutputDev::drawImage (this=0x5555555cb0a0, state=0x5555555e88f0, ref=0x7fffffffddd0, str=0x555555610840, widthA=9472, heightA=1, colorMap=0x7fffffffd880, interpolate=true, maskColors=0x0, inlineImg=false) at ./poppler/CairoOutputDev.cc:3257
#3 0x00007ffff7bf4aaa in Gfx::doImage(Object*, Stream*, bool) () from /usr/lib/x86_64-linux-gnu/libpoppler.so.82
#4 0x00007ffff7bf6bb3 in Gfx::opXObject(Object*, int) () from /usr/lib/x86_64-linux-gnu/libpoppler.so.82
#5 0x00007ffff7bebfcf in Gfx::go(bool) () from /usr/lib/x86_64-linux-gnu/libpoppler.so.82
#6 0x00007ffff7bec49e in Gfx::display(Object*, bool) () from /usr/lib/x86_64-linux-gnu/libpoppler.so.82
#7 0x00007ffff7c42941 in Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) () from /usr/lib/x86_64-linux-gnu/libpoppler.so.82
#8 0x00005555555645b1 in renderPage (output_h=<optimized out>, output_w=<optimized out>, page_h=<optimized out>, page_w=<optimized out>, pg=1, cairoOut=0x5555555cb0a0, doc=0x5555555c5f70) at ./utils/pdftocairo.cc:731
#9 main (argc=<optimized out>, argv=<optimized out>) at ./utils/pdftocairo.cc:1258
(gdb) quit