diff options
author | Caolán McNamara <caolan.mcnamara@collabora.com> | 2024-01-21 20:52:31 +0000 |
---|---|---|
committer | Caolán McNamara <caolan.mcnamara@collabora.com> | 2024-01-22 09:37:12 +0100 |
commit | 91ebb47f86d91f71c3e490976ee5560d18bfb3be (patch) | |
tree | e7046c22bf0f12506a200e5e362fece0106c9b3b /sw | |
parent | 007a0ddeb02188a207b40b9a4438a37aebd81b60 (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.cxx | 18 |
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); |