SvxNumberFormat::nAbsLSpace should have a larger type

Desktop / LibreOffice - Stephan Bergmann [redhat.com] - 15 August 2018 19:20 EDT

...as is seen when executing CppunitTest_sd_filters_test with Clang's new-fsanitize=implicit-conversion (see below). The next larger natural choice after short is sal_Int32, and some of the code calling GetAbsLSpace actually already supported the value to be as wide (but not wider than) sal_Int32; code calling GetAbsLSpace that expected the value to be no wider than short has either been adapted or at least been marked with a TODO. (Other choices could have been sal_Int64 or long.)

Some dependent function's parameter types have also been changed accordingly.

> Testing file:///home/sbergman/lo/core/sd/qa/unit/data/ppt/pass/hang-10.ppt: [...] > filter/source/msfilter/svdfppt.cxx:3792:33: runtime error: implicit conversion from type 'sal_uInt32' (aka 'unsigned int') of value 144780 (32-bit, unsigned) to type 'short' changed the value to 13708 (16-bit, signed) > #0 in PPTNumberFormatCreator::ImplGetNumberFormat(SdrPowerPointImport const&, SvxNumberFormat&) at filter/source/msfilter/svdfppt.cxx:3792:33 (instdir/program/libmsfilterlo.so +0x7992cc) > #1 in PPTNumberFormatCreator::GetNumberFormat(SdrPowerPointImport const&, SvxNumberFormat&, unsigned int, PPTParaLevel const&, PPTCharLevel const&, TSS_Type) at filter/source/msfilter/svdfppt.cxx:3674:5 (instdir/program/libmsfilterlo.so +0x797c6d) > #2 in PPTStyleSheet::PPTStyleSheet(DffRecordHeader const&, SvStream&, SdrPowerPointImport&, PPTTextParagraphStyleAtomInterpreter const&, PPTTextSpecInfo const&) at filter/source/msfilter/svdfppt.cxx:4395:13 (instdir/program/libmsfilterlo.so +0x7ac38d) > #3 in SdrPowerPointImport::SdrPowerPointImport(PowerPointImportParam&, rtl::OUString const&) at filter/source/msfilter/svdfppt.cxx:1618:59 (instdir/program/libmsfilterlo.so +0x74762f) > #4 in ImplSdPPTImport::ImplSdPPTImport(SdDrawDocument*, SotStorage&, SfxMedium&, PowerPointImportParam&) at sd/source/filter/ppt/pptin.cxx:175:7 (instdir/program/libsdfiltlo.so +0x5f2be8) > #5 in SdPPTImport::SdPPTImport(SdDrawDocument*, SvStream&, SotStorage&, SfxMedium&) at sd/source/filter/ppt/pptin.cxx:162:23 (instdir/program/libsdfiltlo.so +0x5ce2bb) > #6 in ImportPPT at sd/source/filter/ppt/pptin.cxx:2760:47 (instdir/program/libsdfiltlo.so +0x617c79) > #7 in SdPPTFilter::Import() at sd/source/filter/sdpptwrp.cxx:106:32 (instdir/program/libsdlo.so +0x2878413) > #8 in sd::DrawDocShell::ConvertFrom(SfxMedium&) at sd/source/ui/docshell/docshel4.cxx:474:46 (instdir/program/libsdlo.so +0x2e165bc) > #9 in SfxObjectShell::DoLoad(SfxMedium*) at sfx2/source/doc/objstor.cxx:786:23 (instdir/program/libsfxlo.so +0x2c8cb12) > #10 in SdFiltersTest::load(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int) at sd/qa/unit/filters-test.cxx:75:31 (workdir/LinkTarget/CppunitTest/libtest_sd_filters_test.so +0x19771) > #11 in test::FiltersTest::recursiveScan(test::filterStatus, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int, bool) at unotest/source/cpp/filters-test.cxx:130:20 (workdir/LinkTarget/CppunitTest/../Library/libunotest.so +0x5724c) > #12 in test::FiltersTest::testDir(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int, bool) at unotest/source/cpp/filters-test.cxx:155:5 (workdir/LinkTarget/CppunitTest/../Library/libunotest.so +0x57ec9) > #13 in SdFiltersTest::testCVEs() at sd/qa/unit/filters-test.cxx:83:5 (workdir/LinkTarget/CppunitTest/libtest_sd_filters_test.so +0x19d6d)

Change-Id: Ifa298a51bb62b7cbee9249b8289963f3427721f5 Reviewed-on: https://gerrit.libreoffice.org/59116

0d227c96e11d SvxNumberFormat::nAbsLSpace should have a larger type
cui/source/tabpages/numpages.cxx | 4 ++--
editeng/source/editeng/editdbg.cxx | 2 +-
editeng/source/items/numitem.cxx | 11 ++++++++---
editeng/source/outliner/outliner.cxx | 2 +-
editeng/source/uno/unonrule.cxx | 2 +-
include/editeng/numitem.hxx | 6 +++---
sd/qa/unit/export-tests-ooxml1.cxx | 2 +-
sd/source/core/drawdoc4.cxx | 2 +-
sd/source/core/stlpool.cxx | 4 ++--
sd/source/ui/view/drviews3.cxx | 2 +-
sw/inc/editsh.hxx | 2 +-
sw/inc/numrule.hxx | 2 +-
sw/source/core/doc/number.cxx | 9 ++++-----
sw/source/core/edit/autofmt.cxx | 4 ++--
sw/source/core/edit/ednumber.cxx | 2 +-
sw/source/core/unocore/unosett.cxx | 2 +-
sw/source/filter/html/htmlcss1.cxx | 2 +-
sw/source/filter/html/htmlnumreader.cxx | 2 +-
sw/source/filter/ww8/wrtw8nds.cxx | 2 +-
sw/source/filter/ww8/wrtw8num.cxx | 2 +-
sw/source/filter/ww8/wrtww8.hxx | 2 +-
sw/source/filter/ww8/ww8atr.cxx | 2 +-
sw/source/filter/ww8/ww8par.cxx | 2 +-
sw/source/filter/ww8/ww8par3.cxx | 2 +-
sw/source/ui/misc/num.cxx | 4 ++--
25 files changed, 41 insertions(+), 37 deletions(-)

Upstream: cgit.freedesktop.org


  • Share