testListLabelPDFExport segfaulting

Stephan Bergmann sbergman at redhat.com
Thu Sep 14 07:16:38 UTC 2023


On 9/13/23 23:17, Dan Horák wrote:
> ...
> [New Thread 0x7fffcb38e7a0 (LWP 2839768)]
> [Thread 0x7fffcb38e7a0 (LWP 2839768) exited]
> warn:legacy.osl:2838662:2838662:oox/source/helper/storagebase.cxx:67: StorageBase::StorageBase - missing base input stream
> Test::testDateFormFieldCharacterFormatting finished in: 5248ms
> [_RUN_____] testListLabelPDFExport::TestBody
> private:factory/swriter:
> 
> Thread 1 "cppunittester" received signal SIGSEGV, Segmentation fault.
> 0x00007fffd7c16188 in testListLabelPDFExport::TestBody (this=0x10e6d640) at /home/sharkcz/projects/libreoffice/sw/qa/extras/globalfilter/globalfilter.cxx:1290
> 1290	    CPPUNIT_ASSERT_EQUAL(1, pPdfDocument->getPageCount());
> (gdb) where
> #0  0x00007fffd7c16188 in testListLabelPDFExport::TestBody() (this=0x10e6d640) at /home/sharkcz/projects/libreoffice/sw/qa/extras/globalfilter/globalfilter.cxx:1290
> #1  0x00007fffd7c9b4a8 in std::__invoke_impl<void, void (testListLabelPDFExport::*&)(), testListLabelPDFExport*&>(std::__invoke_memfun_deref, void (testListLabelPDFExport::*&)(), testListLabelPDFExport*&) (__f=@0x10e6dba0: (void (testListLabelPDFExport::*)(testListLabelPDFExport * const)) 0x7fffd7c155d8 <testListLabelPDFExport::TestBody()>, __t=@0x10e6dbb0: 0x10e6d640)
>      at /usr/include/c++/13/bits/invoke.h:74
> ...
> 
> but I think I see the problem, pPdfDocument is NULL, which is returned
> by parsePDFExport(), because we don't build with pdfium, I suppose.
> I can prepare a patch to run the test section only when non-NULL.

I'd suggest to rather make execution of the test dependent on 
$(ENABLE_PDFIUM), or on PDFIUM in $(BUILD_TYPE) (cf. configure.ac). 
(Otherwise, you would silently hide errors when parsePDFExport() 
erroneously returns null.)

But I wonder why all the other tests that call parsePDFExport() don't 
appear to be conditional on $(ENABLE_PDFIUM), either.



More information about the LibreOffice mailing list