summaryrefslogtreecommitdiff
path: root/lotuswordpro
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2017-03-15 11:50:25 +0100
committerStephan Bergmann <sbergman@redhat.com>2017-03-15 11:50:25 +0100
commitd92d9e0d94fd8e9908eeae3717a7c835c85e80ae (patch)
tree99364745bee620daddb7fcd5fe2b6b0ffd858dda /lotuswordpro
parent3934f704a1984c95333d2760ca5d1331dce1a045 (diff)
Avoid unnecessary, wrong downcast
...causing UBSan failure with the new lotuswordpro/qa/cppunit/data/fail/stack-1.lwp from e68faf7d42179c4f9b90b514f5b3bfcb7f1e9cb0 "ofz#866 crash in LwpFormulaInfo::ReadArguments": > Testing file:///.../lotuswordpro/qa/cppunit/data/fail/stack-1.lwp: > lotuswordpro/source/filter/bencont.cxx:132:11: runtime error: downcast of address 0x60800043af28 which does not point to an object of type 'OpenStormBento::CBenObject' > 0x60800043af28: note: object is of type 'OpenStormBento::CUtListElmt' > 89 7f 00 00 70 94 cc 7f 89 7f 00 00 80 ae 2d 00 70 60 00 00 80 ae 2d 00 70 60 00 00 30 95 cc 7f > ^~~~~~~~~~~~~~~~~~~~~~~ > vptr for 'OpenStormBento::CUtListElmt' > #0 0x7f897ed108f7 in OpenStormBento::LtcBenContainer::RegisterPropertyName(char const*, OpenStormBento::CBenPropertyName**) lotuswordpro/source/filter/bencont.cxx:132:11 > #1 0x7f897ed11df7 in OpenStormBento::LtcBenContainer::FindNextValueStreamWithPropertyName(char const*) lotuswordpro/source/filter/bencont.cxx:227:5 > #2 0x7f897ed12492 in OpenStormBento::LtcBenContainer::FindValueStreamWithPropertyName(char const*) lotuswordpro/source/filter/bencont.cxx:256:12 > #3 0x7f897ef1fc19 in Decompress(SvStream*, SvStream*&) lotuswordpro/source/filter/lwpfilter.cxx:122:72 > #4 0x7f897ef20deb in GetLwpSvStream(SvStream*, LwpSvStream*&) lotuswordpro/source/filter/lwpfilter.cxx:164:14 > #5 0x7f897ef21836 in ReadWordproFile(SvStream&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XDocumentHandler>&) lotuswordpro/source/filter/lwpfilter.cxx:195:13 > #6 0x7f897ed290cd in LotusWordProImportFilter::importImpl(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) lotuswordpro/source/filter/LotusWordProImportFilter.cxx:76:14 > #7 0x7f897ed296fd in LotusWordProImportFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) lotuswordpro/source/filter/LotusWordProImportFilter.cxx:88:12 > #8 0x7f898eb6db9a in (anonymous namespace)::LotusWordProTest::load(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int) lotuswordpro/qa/cppunit/test_lotuswordpro.cxx:59:27 > #9 0x7f898e3c7901 in test::FiltersTest::recursiveScan(test::filterStatus, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int, bool) unotest/source/cpp/filters-test.cxx:130:20 > #10 0x7f898e3c9fd5 in test::FiltersTest::testDir(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int, bool) unotest/source/cpp/filters-test.cxx:158:5 > #11 0x7f898eb6ee58 in (anonymous namespace)::LotusWordProTest::test() lotuswordpro/qa/cppunit/test_lotuswordpro.cxx:64:9 > #12 0x7f898eb7006b in CppUnit::TestCaller<(anonymous namespace)::LotusWordProTest>::runTest() workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:166:6 > #13 0x7f89d2d74d8b in CppUnit::TestCaseMethodFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 > #14 0x7f89b944f99f in (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) test/source/vclbootstrapprotector.cxx:36:14 > #15 0x7f89d2d333ce in CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 > #16 0x7f89c2f440cf in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:89:12 > #17 0x7f89d2d333ce in CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 > #18 0x7f89c6bff2c4 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:63:16 > #19 0x7f89d2d333ce in CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 > #20 0x7f89d2cb1350 in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/DefaultProtector.cpp:15:12 > #21 0x7f89d2d333ce in CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 > #22 0x7f89d2d2fe70 in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:77:18 > #23 0x7f89d2def0f5 in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:181:28 > #24 0x7f89d2d72fa4 in CppUnit::TestCase::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:91:13 > #25 0x7f89d2d777a7 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 > #26 0x7f89d2d76819 in CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 > #27 0x7f89d2d777a7 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 > #28 0x7f89d2d76819 in CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 > #29 0x7f89d2e2d5c9 in CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:47:27 > #30 0x7f89d2ded40d in CppUnit::TestResult::runTest(CppUnit::Test*) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:148:9 > #31 0x7f89d2e2e89b in CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:96:14 > #32 0x53043c in (anonymous namespace)::ProtectedFixtureFunctor::run() const sal/cppunittester/cppunittester.cxx:305:20 > #33 0x52c089 in sal_main() sal/cppunittester/cppunittester.cxx:455:20 > #34 0x52a742 in main sal/cppunittester/cppunittester.cxx:362:1 > #35 0x7f89d0fb8400 in __libc_start_main /usr/src/debug/glibc-2.24-33-ge9e69e4/csu/../csu/libc-start.c:289 > #36 0x437d49 in _start (workdir/LinkTarget/Executable/cppunittester+0x437d49) Change-Id: I556c3ab6fcc7a08fceac5a7195f81d570fc2a025
Diffstat (limited to 'lotuswordpro')
-rw-r--r--lotuswordpro/source/filter/bencont.cxx2
-rw-r--r--lotuswordpro/source/filter/benname.cxx2
-rw-r--r--lotuswordpro/source/filter/bento.hxx4
3 files changed, 4 insertions, 4 deletions
diff --git a/lotuswordpro/source/filter/bencont.cxx b/lotuswordpro/source/filter/bencont.cxx
index 506b2ed06d72..2b919cd6190a 100644
--- a/lotuswordpro/source/filter/bencont.cxx
+++ b/lotuswordpro/source/filter/bencont.cxx
@@ -129,7 +129,7 @@ LtcBenContainer::RegisterPropertyName(const char * sPropertyName,
return;
*ppPropertyName = new CBenPropertyName(this, cNextAvailObjectID,
- static_cast<pCBenObject>(pPrevObject), sPropertyName, pPrevNamedObjectListElmt);
+ pPrevObject, sPropertyName, pPrevNamedObjectListElmt);
++cNextAvailObjectID;
}
}
diff --git a/lotuswordpro/source/filter/benname.cxx b/lotuswordpro/source/filter/benname.cxx
index 32855fbd73a3..93463f51c77e 100644
--- a/lotuswordpro/source/filter/benname.cxx
+++ b/lotuswordpro/source/filter/benname.cxx
@@ -59,7 +59,7 @@ namespace OpenStormBento
{
// changed to remove warning
CBenNamedObject::CBenNamedObject(pLtcBenContainer pContainer,
- BenObjectID ObjectID, pCBenObject pPrevObject, const char * sName,
+ BenObjectID ObjectID, pCUtListElmt pPrevObject, const char * sName,
pCUtListElmt pPrevNamedObjectListElmt)
: CBenObject(pContainer, ObjectID, pPrevObject)
, csName(sName)
diff --git a/lotuswordpro/source/filter/bento.hxx b/lotuswordpro/source/filter/bento.hxx
index af08bcb1a7ee..a5137904d514 100644
--- a/lotuswordpro/source/filter/bento.hxx
+++ b/lotuswordpro/source/filter/bento.hxx
@@ -344,7 +344,7 @@ public: // Methods
public: // Internal methods
CBenNamedObject(pLtcBenContainer pContainer, BenObjectID ObjectID,
- pCBenObject pPrevObject, const char * sName,
+ pCUtListElmt pPrevObject, const char * sName,
pCUtListElmt pPrevNamedObjectListElmt);
const char * GetNameCStr() { return csName.c_str(); }
@@ -358,7 +358,7 @@ class CBenPropertyName : public CBenNamedObject
{
public: // Internal methods
CBenPropertyName(pLtcBenContainer pContainer, BenObjectID ObjectID,
- pCBenObject pPrevObject, const char * sName,
+ pCUtListElmt pPrevObject, const char * sName,
pCUtListElmt pPrevNamedObjectListElmt) :
CBenNamedObject(pContainer, ObjectID, pPrevObject, sName,
pPrevNamedObjectListElmt) { ; }