sc/source/filter/excel/xihelper.cxx | 12 ++++++------ sc/source/filter/inc/xihelper.hxx | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-)
New commits: commit 6d6b4df2c2e979ab0fadc96ae20bb23e86df1ae0 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Wed Jul 25 16:12:54 2018 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Jul 25 22:00:51 2018 +0200 ofz#8373 tight OUString concat loop causes libfuzzer oom it doesn't get a chance to release memory and falls over with an oom. Or something like that anyway. Change-Id: I9d8dd704fb63d70755c6c1b211db6fe9d99cc2e5 Reviewed-on: https://gerrit.libreoffice.org/57987 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sc/source/filter/excel/xihelper.cxx b/sc/source/filter/excel/xihelper.cxx index 9ce3c500c9fa..04525d44a47c 100644 --- a/sc/source/filter/excel/xihelper.cxx +++ b/sc/source/filter/excel/xihelper.cxx @@ -283,7 +283,7 @@ void XclImpHFConverter::ParseString( const OUString& rHFString ) meCurrObj = EXC_HF_CENTER; // parser temporaries - maCurrText.clear(); + maCurrText.truncate(); OUString aReadFont; // current font name OUString aReadStyle; // current font style sal_uInt16 nReadHeight = 0; // current font height @@ -321,7 +321,7 @@ void XclImpHFConverter::ParseString( const OUString& rHFString ) InsertLineBreak(); break; default: - maCurrText += OUStringLiteral1(*pChar); + maCurrText.append(OUStringLiteral1(*pChar)); } } break; @@ -333,7 +333,7 @@ void XclImpHFConverter::ParseString( const OUString& rHFString ) eState = xlPSText; switch( *pChar ) { - case '&': maCurrText += "&"; break; // the '&' character + case '&': maCurrText.append("&"); break; // the '&' character case 'L': SetNewPortion( EXC_HF_LEFT ); break; // Left portion case 'C': SetNewPortion( EXC_HF_CENTER ); break; // Center portion @@ -538,9 +538,9 @@ void XclImpHFConverter::InsertText() if( !maCurrText.isEmpty() ) { ESelection& rSel = GetCurrSel(); - mrEE.QuickInsertText( maCurrText, ESelection( rSel.nEndPara, rSel.nEndPos, rSel.nEndPara, rSel.nEndPos ) ); - rSel.nEndPos = rSel.nEndPos + maCurrText.getLength(); - maCurrText.clear(); + OUString sString(maCurrText.makeStringAndClear()); + mrEE.QuickInsertText( sString, ESelection( rSel.nEndPara, rSel.nEndPos, rSel.nEndPara, rSel.nEndPos ) ); + rSel.nEndPos = rSel.nEndPos + sString.getLength(); UpdateCurrMaxLineHeight(); } } diff --git a/sc/source/filter/inc/xihelper.hxx b/sc/source/filter/inc/xihelper.hxx index 8f64e2fd606c..15c76bd839d6 100644 --- a/sc/source/filter/inc/xihelper.hxx +++ b/sc/source/filter/inc/xihelper.hxx @@ -240,7 +240,7 @@ private: private: EditEngine& mrEE; /// The header/footer edit engine. XclImpHFPortionInfoVec maInfos; /// Edit engine text objects for all portions. - OUString maCurrText; /// Current text to insert into edit engine. + OUStringBuffer maCurrText; /// Current text to insert into edit engine. XclFontDataPtr mxFontData; /// Font data of current text. XclImpHFPortion meCurrObj; /// The current portion. }; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits