[poppler] Bug rendering PDF spec Version 1.5, PDF 1.4 configuration

Krzysztof Kowalczyk kkowalczyk at gmail.com
Thu Nov 1 17:17:55 PDT 2007


In my experience valgrind does produce false positives, especially in
optimized release builds.

I'm not saying that this is the case here but it is a possibility.

To better understand the issue you can use valgrind's capability to
launch gdb when this happens and you from current instruction,
disassembly and state of registers you might be able to figure out
which value valgrind complains about and then from source code you can
figure out whether this is a real uninitialized value or false
positive.

-- kjk

On 11/1/07, Brad Hards <bradh at frogmouth.net> wrote:
> My stress test is showing a problem with PDFReference15_v5.pdf (doesn't appear
> to occur with PDFReference15_v6.pdf).
>
> I'm having a lot of trouble understanding the valgrind backtraces:
> Doing PDFReference15_v5.pdf :
...........................................................................................................................................
> .......................................==6811==
> ==6811== Conditional jump or move depends on uninitialised value(s)
> ==6811==    at 0x408BB1E: GfxDeviceGrayColorSpace::getGray(GfxColor*, int*) (GfxState.cc:29)
> ==6811==    by 0x4051CB5: SplashOutputDev::updateFillColor(GfxState*) (GfxState.h:1065)
> ==6811==    by 0x407DE5E: Gfx::doTilingPatternFill(GfxTilingPattern*, int, int) (Gfx.cc:1701)
> ==6811==    by 0x408328B: Gfx::doPatternFill(int) (Gfx.cc:1588)
> ==6811==    by 0x4083601: Gfx::opFillStroke(Object*, int) (Gfx.cc:1498)
> ==6811==    by 0x4077602: Gfx::execOp(Object*, Object*, int) (Gfx.cc:717)
> ==6811==    by 0x40777BC: Gfx::go(int) (Gfx.cc:588)
> ==6811==    by 0x4077D26: Gfx::display(Object*, int) (Gfx.cc:557)
> ==6811==    by 0x40BD915: Page::displaySlice(OutputDev*, double, double, int, int, int, int, int, int, int, int, Catalog*, int (*)(void*),
> void*, int (*)(Annot*, void*), void*) (Page.cc:406)
> ==6811==    by 0x40BF9E6: PDFDoc::displayPageSlice(OutputDev*, int, double, double, int, int, int, int, int, int, int, int, int (*)(void*),
>  void*, int (*)(Annot*, void*), void*) (PDFDoc.cc:396)
> ==6811==    by 0x41A8C6F: Poppler::Page::renderToImage(double, double, int, int, int, int, Poppler::Page::Rotation) const (poppler-page.cc:
> 185)
> ==6811==    by 0x804A513: main (stress-poppler-dir.cpp:48)
> ==6811==
> ==6811== Conditional jump or move depends on uninitialised value(s)
> ==6811==    at 0x40932C1: GfxDeviceGrayColorSpace::getRGB(GfxColor*, GfxRGB*) (GfxState.cc:249)
> ==6811==    by 0x4051CCB: SplashOutputDev::updateFillColor(GfxState*) (GfxState.h:1069)
> ==6811==    by 0x407DE5E: Gfx::doTilingPatternFill(GfxTilingPattern*, int, int) (Gfx.cc:1701)
> ==6811==    by 0x408328B: Gfx::doPatternFill(int) (Gfx.cc:1588)
> ==6811==    by 0x4083601: Gfx::opFillStroke(Object*, int) (Gfx.cc:1498)
> ==6811==    by 0x4077602: Gfx::execOp(Object*, Object*, int) (Gfx.cc:717)
> ==6811==    by 0x40777BC: Gfx::go(int) (Gfx.cc:588)
> ==6811==    by 0x4077D26: Gfx::display(Object*, int) (Gfx.cc:557)
> ==6811==    by 0x40BD915: Page::displaySlice(OutputDev*, double, double, int, int, int, int, int, int, int, int, Catalog*, int (*)(void*),
> void*, int (*)(Annot*, void*), void*) (Page.cc:406)
> ==6811==    by 0x40BF9E6: PDFDoc::displayPageSlice(OutputDev*, int, double, double, int, int, int, int, int, int, int, int, int (*)(void*),
>  void*, int (*)(Annot*, void*), void*) (PDFDoc.cc:396)
> ==6811==    by 0x41A8C6F: Poppler::Page::renderToImage(double, double, int, int, int, int, Poppler::Page::Rotation) const (poppler-page.cc:
> 185)
> ==6811==    by 0x804A513: main (stress-poppler-dir.cpp:48)
> ...........................................................................................................................................
> .....................
>
> [Note: each dot represents a page that we rendered to an image - this is a page towards the end]
>
> Any ideas?
>
> Brad
>
> _______________________________________________
> poppler mailing list
> poppler at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/poppler
>
>
>


More information about the poppler mailing list