sc/source/filter/xml/xmlsubti.cxx | 2 ++ sc/source/filter/xml/xmlsubti.hxx | 2 +- xmloff/source/style/xmlnumfi.cxx | 4 +++- 3 files changed, 6 insertions(+), 2 deletions(-)
New commits: commit f373868e16a1d83ceda531e4965cb00eaa523b8a Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Thu Jan 3 02:18:25 2013 +0100 limit the number of imported digits, fdo#58539 This should fix the crash with gnome#627420. Change-Id: Ibfff498282dc1c6fe9124ced645392107ef8829f diff --git a/xmloff/source/style/xmlnumfi.cxx b/xmloff/source/style/xmlnumfi.cxx index 28a4ec6..1ffae17 100644 --- a/xmloff/source/style/xmlnumfi.cxx +++ b/xmloff/source/style/xmlnumfi.cxx @@ -916,6 +916,8 @@ static void lcl_EnquoteIfNecessary( rtl::OUStringBuffer& rContent, const SvXMLNu // SvXMLNumFmtElementContext // +const sal_Int32 MAX_SECOND_DIGITS = 20; // fdo#58539 & gnome#627420: limit number of digits during import + SvXMLNumFmtElementContext::SvXMLNumFmtElementContext( SvXMLImport& rImport, sal_uInt16 nPrfx, const rtl::OUString& rLName, SvXMLNumFormatContext& rParentContext, sal_uInt16 nNewType, @@ -948,7 +950,7 @@ SvXMLNumFmtElementContext::SvXMLNumFmtElementContext( SvXMLImport& rImport, { case XML_TOK_ELEM_ATTR_DECIMAL_PLACES: if (::sax::Converter::convertNumber( nAttrVal, sValue, 0 )) - aNumInfo.nDecimals = nAttrVal; + aNumInfo.nDecimals = std::min<sal_Int32>(nAttrVal, MAX_SECOND_DIGITS); break; case XML_TOK_ELEM_ATTR_MIN_INTEGER_DIGITS: if (::sax::Converter::convertNumber( nAttrVal, sValue, 0 )) commit 74de75156f1ac6de427b62f000c6dcd248f914f6 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Thu Jan 3 01:41:45 2013 +0100 don't overflow column number during import, fdo#58539 This should fix the crash with kde#245919 Change-Id: I7c3af01e27233d2f94d5585247c59e7d5b6ea8ca diff --git a/sc/source/filter/xml/xmlsubti.cxx b/sc/source/filter/xml/xmlsubti.cxx index 2dddb90..1950e3c 100644 --- a/sc/source/filter/xml/xmlsubti.cxx +++ b/sc/source/filter/xml/xmlsubti.cxx @@ -220,6 +220,8 @@ void ScMyTables::AddColStyle(const sal_Int32 nRepeat, const rtl::OUString& rCell { rImport.GetStylesImportHelper()->AddColumnStyle(rCellStyleName, nCurrentColCount, nRepeat); nCurrentColCount += nRepeat; + SAL_WARN_IF(nCurrentColCount > MAXCOL, "sc", "more columns than fit into SCCOL"); + nCurrentColCount = std::min<sal_Int32>( nCurrentColCount, MAXCOL ); } uno::Reference< drawing::XDrawPage > ScMyTables::GetCurrentXDrawPage() diff --git a/sc/source/filter/xml/xmlsubti.hxx b/sc/source/filter/xml/xmlsubti.hxx index 2cdea77..b770771 100644 --- a/sc/source/filter/xml/xmlsubti.hxx +++ b/sc/source/filter/xml/xmlsubti.hxx @@ -87,7 +87,7 @@ public: ScXMLTabProtectionData& GetCurrentProtectionData() { return maProtectionData; } rtl::OUString GetCurrentSheetName() const { return sCurrentSheetName; } SCTAB GetCurrentSheet() const { return (maCurrentCellPos.Tab() >= 0) ? maCurrentCellPos.Tab() : 0; } - SCCOL GetCurrentColCount() const { return nCurrentColCount; } + SCCOL GetCurrentColCount() const { return std::min<sal_Int32>(nCurrentColCount, MAXCOL); } SCROW GetCurrentRow() const { return (maCurrentCellPos.Row() >= 0) ? maCurrentCellPos.Row() : 0; } ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSpreadsheet > GetCurrentXSheet() const { return xCurrentSheet; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits