Null-pointer dereference in CairoOutputDev::setSoftMask
Hi,
There is a null-pointer dereference in CairoOutputDev::setSoftMask. Looks like we don't expect NULL from
cairo_image_surface_get_data(source)
/home/build/utils/pdftocairo -png bug852992_reduced.pdf_mutateds
Syntax Error: Couldn't find trailer dictionary
Syntax Error: Invalid XRef entry 14
Internal Error: xref num 14 not found but needed, try to reconstruct<0a>
Syntax Error: Invalid XRef entry 14
Syntax Error: ExtGState 'CBH' is unknown
Syntax Error: Invalid XRef entry 10
Syntax Error (1095): Invalid soft mask in ExtGState - missing group
Syntax Error (944): Unknown operator 'w<f3><a0><81><94>'
Syntax Error (1007): Unknown operator 'endstreal'
Syntax Error (1009): Unknown operator 'endobj'
Syntax Error (1025): Unknown operator 'obj'
Syntax Error (1043): Unknown operator '>>'
Syntax Error (1046): Unknown operator 'stream'
Syntax Error: ExtGState 'CBH' is unknown
ASAN:SIGSEGV
=================================================================
==76462==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x000000438421 bp 0x000000000000 sp 0x7ffec94455c0 T0)
#0 0x438420 in CairoOutputDev::setSoftMask(GfxState*, double const*, bool, Function*, GfxColor*) /home/poppler/poppler/CairoOutputDev.cc:1834
#1 0x7f8c2055cd79 in Gfx::drawForm(Object*, Dict*, double const*, double const*, bool, bool, GfxColorSpace*, bool, bool, bool, Function*, GfxColor*) /home/poppler/poppler/Gfx.cc:4870
#2 0x7f8c2055e6a9 in Gfx::doSoftMask(Object*, bool, GfxColorSpace*, bool, bool, Function*, GfxColor*) /home/poppler/poppler/Gfx.cc:1359
#3 0x7f8c20563bc7 in Gfx::opSetExtGState(Object*, int) /home/poppler/poppler/Gfx.cc:1227
#4 0x7f8c20558588 in Gfx::go(bool) /home/poppler/poppler/Gfx.cc:752
#5 0x7f8c2055a8da in Gfx::display(Object*, bool) /home/poppler/poppler/Gfx.cc:714
#6 0x7f8c2055c1b7 in Gfx::drawForm(Object*, Dict*, double const*, double const*, bool, bool, GfxColorSpace*, bool, bool, bool, Function*, GfxColor*) /home/poppler/poppler/Gfx.cc:4838
#7 0x7f8c2057688f in Gfx::doForm(Object*) /home/poppler/poppler/Gfx.cc:4762
#8 0x7f8c205780ee in Gfx::opXObject(Object*, int) /home/poppler/poppler/Gfx.cc:4178
#9 0x7f8c20558588 in Gfx::go(bool) /home/poppler/poppler/Gfx.cc:752
#10 0x7f8c2055a8da in Gfx::display(Object*, bool) /home/poppler/poppler/Gfx.cc:714
#11 0x7f8c207185b3 in Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) /home/poppler/poppler/Page.cc:548
#12 0x40e568 in renderPage /home/poppler/utils/pdftocairo.cc:737
#13 0x40e568 in main /home/poppler/utils/pdftocairo.cc:1257
#14 0x7f8c1f51182f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
#15 0x413bb8 in _start (/home/build/utils/pdftocairo+0x413bb8)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/poppler/poppler/CairoOutputDev.cc:1834 CairoOutputDev::setSoftMask(GfxState*, double const*, bool, Function*, GfxColor*)