summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-10-16 14:04:35 +0100
committerCaolán McNamara <caolanm@redhat.com>2021-10-16 20:36:40 +0200
commit7422ef83a1304d34cd303a7160efd4e76cc44a49 (patch)
tree38a26fdd164dca9923f942e701cfcc0c4714ef73
parent7528bb3c5098a67f32523c028d83dfbc79a7c6a0 (diff)
ofz#40004 Timeout
Change-Id: I261f6acec53936e4a644bb4b38bbc41fa9ad120c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123702 Tested-by: Jenkins Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--lotuswordpro/source/filter/lwppagelayout.cxx7
1 files changed, 7 insertions, 0 deletions
diff --git a/lotuswordpro/source/filter/lwppagelayout.cxx b/lotuswordpro/source/filter/lwppagelayout.cxx
index 0a72db8f7d30..735a0791c2e2 100644
--- a/lotuswordpro/source/filter/lwppagelayout.cxx
+++ b/lotuswordpro/source/filter/lwppagelayout.cxx
@@ -607,8 +607,11 @@ sal_Int32 LwpPageLayout::GetPageNumber(sal_uInt16 nLayoutNumber)
//get first pagehint
LwpPageHint* pPageHint = dynamic_cast<LwpPageHint*>(pHeadTail->GetHead().obj().get());
+ o3tl::sorted_vector<LwpPageHint*> aSeen;
while (pPageHint)
{
+ aSeen.insert(pPageHint);
+
if (GetObjectID() == pPageHint->GetPageLayoutID())
{
sal_uInt16 nNumber = pPageHint->GetPageNumber();
@@ -635,7 +638,11 @@ sal_Int32 LwpPageLayout::GetPageNumber(sal_uInt16 nLayoutNumber)
break;
}
}
+
pPageHint = dynamic_cast<LwpPageHint*>(pPageHint->GetNext().obj().get());
+
+ if (aSeen.find(pPageHint) != aSeen.end())
+ throw std::runtime_error("loop in conversion");
}
if (nPageNumber >= 0)
{