• Stephan Bergmann's avatar
    external/poppler: Avoid UBSan warning about undefined downcast · 55013a77
    Stephan Bergmann yazdı
    ...of this-ptr of in-construction FormFieldSignature while still in the base
    FormField ctor, as happens (in the xpdfimport process) during
    CppunitTest_xmlsecurity_signing:
    
    > Form.cc:448:12: runtime error: downcast of address 0x60f000000040 which does not point to an object of type 'FormFieldSignature'
    > 0x60f000000040: note: object is of type 'FormField'
    >  03 00 00 6d  50 84 f2 00 00 00 00 00  03 00 00 00 04 00 00 00  00 00 00 00 01 be be be  07 00 00 00
    >               ^~~~~~~~~~~~~~~~~~~~~~~
    >               vptr for 'FormField'
    >     #0 0x73d7f4 in FormWidgetSignature::FormWidgetSignature(PDFDoc*, Object*, unsigned int, Ref, FormField*) workdir/UnpackedTarball/poppler/poppler/Form.cc:448:12
    >     #1 0x741713 in FormField::_createWidget(Object*, Ref) workdir/UnpackedTarball/poppler/poppler/Form.cc:677:34
    >     #2 0x73e747 in FormField::FormField(PDFDoc*, Object*, Ref const&, FormField*, std::set<int, std::less<int>, std::allocator<int> >*, FormFieldType) workdir/UnpackedTarball/poppler/poppler/Form.cc:547:7
    >     #3 0x74ec2b in FormFieldSignature::FormFieldSignature(PDFDoc*, Object*, Ref const&, FormField*, std::set<int, std::less<int>, std::allocator<int> >*) workdir/UnpackedTarball/poppler/poppler/Form.cc:1383:5
    >     #4 0x740d7f in Form::createFieldFromDict(Object*, PDFDoc*, Ref const&, FormField*, std::set<int, std::less<int>, std::allocator<int> >*) workdir/UnpackedTarball/poppler/poppler/Form.cc:1700:19
    >     #5 0x750727 in Form::Form(PDFDoc*, Object*) workdir/UnpackedTarball/poppler/poppler/Form.cc:1623:33
    >     #6 0x71d440 in Catalog::getForm() workdir/UnpackedTarball/poppler/poppler/Catalog.cc:1042:18
    >     #7 0x708572 in Annots::createAnnot(Dict*, Object*) workdir/UnpackedTarball/poppler/poppler/Annot.cc:7218:41
    >     #8 0x70772b in Annots::Annots(PDFDoc*, int, Object*) workdir/UnpackedTarball/poppler/poppler/Annot.cc:7128:17
    >     #9 0x87f3e9 in Page::getAnnots(XRef*) workdir/UnpackedTarball/poppler/poppler/Page.cc:405:18
    >     #10 0x8814b0 in Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) workdir/UnpackedTarball/poppler/poppler/Page.cc:611:15
    >     #11 0x880ff6 in Page::display(OutputDev*, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) workdir/UnpackedTarball/poppler/poppler/Page.cc:521:3
    >     #12 0x88d906 in PDFDoc::displayPage(OutputDev*, int, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) workdir/UnpackedTarball/poppler/poppler/PDFDoc.cc:491:20
    >     #13 0x5d59fb in main sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx:142:14
    >     #14 0x7f11600ea730 in __libc_start_main (/lib64/libc.so.6+0x20730)
    >     #15 0x459388 in _start (instdir/program/xpdfimport+0x459388)
    
    Change-Id: Ia808919c8d2363d616feb4664f314a77b40dfbb8
    55013a77
Adı
Son kayıt (commit)
Son güncelleme
..
ExternalProject_poppler.mk Loading commit data...
Makefile Loading commit data...
Module_poppler.mk Loading commit data...
README Loading commit data...
UnpackedTarball_poppler.mk Loading commit data...
poppler-0.46.0-std-max.patch.1 Loading commit data...
poppler-0.46.0-unused-private-field.patch.1 Loading commit data...
poppler-mac-fake.patch.1 Loading commit data...
poppler-notests.patch.1 Loading commit data...
poppler-snprintf.patch.1 Loading commit data...
poppler-vs2013.patch.1 Loading commit data...
ubsan.patch.0 Loading commit data...