[Libreoffice-commits] core.git: sw/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Sun Sep 30 14:08:32 UTC 2018
sw/source/filter/html/swhtml.cxx | 28 +++++++++++++++-------------
sw/source/filter/html/swhtml.hxx | 2 +-
2 files changed, 16 insertions(+), 14 deletions(-)
New commits:
commit 544243ea8a92e9761201941c033c341795328baf
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sun Sep 30 11:52:24 2018 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Sun Sep 30 16:08:11 2018 +0200
ofz#10635 oom in tight OUString concat loop
Change-Id: I56944e14b7d2b2dc0946b76360b906447e024f06
Reviewed-on: https://gerrit.libreoffice.org/61154
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx
index 0e00318fe7c3..d3c513530216 100644
--- a/sw/source/filter/html/swhtml.cxx
+++ b/sw/source/filter/html/swhtml.cxx
@@ -1001,7 +1001,9 @@ void SwHTMLParser::NextToken( HtmlTokenId nToken )
switch( nToken )
{
case HtmlTokenId::TITLE_OFF:
- if( IsNewDoc() && !m_sTitle.isEmpty() )
+ {
+ OUString sTitle = m_sTitle.makeStringAndClear();
+ if( IsNewDoc() && !sTitle.isEmpty() )
{
if( m_xDoc->GetDocShell() ) {
uno::Reference<document::XDocumentPropertiesSupplier>
@@ -1011,39 +1013,39 @@ void SwHTMLParser::NextToken( HtmlTokenId nToken )
xDPS->getDocumentProperties());
OSL_ENSURE(xDocProps.is(), "no DocumentProperties");
if (xDocProps.is()) {
- xDocProps->setTitle(m_sTitle);
+ xDocProps->setTitle(sTitle);
}
- m_xDoc->GetDocShell()->SetTitle( m_sTitle );
+ m_xDoc->GetDocShell()->SetTitle(sTitle);
}
}
m_bInTitle = false;
- m_sTitle.clear();
break;
+ }
case HtmlTokenId::NONBREAKSPACE:
- m_sTitle += " ";
+ m_sTitle.append(" ");
break;
case HtmlTokenId::SOFTHYPH:
- m_sTitle += "-";
+ m_sTitle.append("-");
break;
case HtmlTokenId::TEXTTOKEN:
- m_sTitle += aToken;
+ m_sTitle.append(aToken);
break;
default:
- m_sTitle += "<";
+ m_sTitle.append("<");
if( (nToken >= HtmlTokenId::ONOFF_START) && isOffToken(nToken) )
- m_sTitle += "/";
- m_sTitle += sSaveToken;
+ m_sTitle.append("/");
+ m_sTitle.append(sSaveToken);
if( !aToken.isEmpty() )
{
- m_sTitle += " ";
- m_sTitle += aToken;
+ m_sTitle.append(" ");
+ m_sTitle.append(aToken);
}
- m_sTitle += ">";
+ m_sTitle.append(">");
break;
}
diff --git a/sw/source/filter/html/swhtml.hxx b/sw/source/filter/html/swhtml.hxx
index e1244ba24839..fffff878e01b 100644
--- a/sw/source/filter/html/swhtml.hxx
+++ b/sw/source/filter/html/swhtml.hxx
@@ -347,7 +347,7 @@ class SwHTMLParser : public SfxHTMLParser, public SwClient
OUString m_aScriptURL; // script URL
OUString m_aStyleSource; // content of current style sheet
OUString m_aContents; // text of current marquee, field and so
- OUString m_sTitle;
+ OUStringBuffer m_sTitle;
OUString m_aUnknownToken; // a started unknown token
OUString m_aBulletGrfs[MAXLEVEL];
OUString m_sJmpMark;
More information about the Libreoffice-commits
mailing list