summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorCaolán McNamara <caolan.mcnamara@collabora.com>2024-01-21 20:52:31 +0000
committerCaolán McNamara <caolan.mcnamara@collabora.com>2024-01-22 09:37:12 +0100
commit91ebb47f86d91f71c3e490976ee5560d18bfb3be (patch)
treee7046c22bf0f12506a200e5e362fece0106c9b3b /sw
parent007a0ddeb02188a207b40b9a4438a37aebd81b60 (diff)
ofz#66044 Timeout
its not very interesting to find that long paragraphs are slow to render Change-Id: Ib849c937e288af2067243a17e90d828799062ee3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162352 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Diffstat (limited to 'sw')
-rw-r--r--sw/source/filter/xml/xmlimp.cxx18
1 files changed, 18 insertions, 0 deletions
diff --git a/sw/source/filter/xml/xmlimp.cxx b/sw/source/filter/xml/xmlimp.cxx
index ba7afc80ee8c..578ef0ee0bcb 100644
--- a/sw/source/filter/xml/xmlimp.cxx
+++ b/sw/source/filter/xml/xmlimp.cxx
@@ -1845,6 +1845,24 @@ extern "C" SAL_DLLPUBLIC_EXPORT bool TestPDFExportFODT(SvStream &rStream)
if (ret)
{
+ uno::Reference<text::XTextDocument> xTextDocument(xModel, uno::UNO_QUERY);
+ uno::Reference<text::XText> xText(xTextDocument->getText());
+ uno::Reference<container::XEnumerationAccess> xParaAccess(xText, uno::UNO_QUERY);
+ uno::Reference<container::XEnumeration> xParaEnum(xParaAccess->createEnumeration());
+ while (xParaEnum->hasMoreElements())
+ {
+ uno::Reference<text::XTextRange> xPara(xParaEnum->nextElement(), uno::UNO_QUERY);
+ // discourage very long paragraphs for fuzzing performance
+ if (xPara && xPara->getString().getLength() > 15000)
+ {
+ ret = false;
+ break;
+ }
+ }
+ }
+
+ if (ret)
+ {
css::uno::Reference<css::frame::XController2> xController(xModel->createDefaultViewController(xTargetFrame), UNO_SET_THROW);
utl::ConnectFrameControllerModel(xTargetFrame, xController, xModel);