summaryrefslogtreecommitdiff
path: root/lotuswordpro
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-03-01 10:20:43 +0000
committerCaolán McNamara <caolanm@redhat.com>2018-03-01 14:48:30 +0100
commit9122f4598450d8a96e63fb29cc8166a6ae09587a (patch)
treef1a0ac8a86d4f8f11a03c2ce23cb1e69cbf681a0 /lotuswordpro
parente85b8efafc715f2bf3e240f24617dc1d6aa46d4f (diff)
ofz: infinite loop
Change-Id: I88b3d8bef0c522e4aa5e16ea8d45f7ea79337300 Reviewed-on: https://gerrit.libreoffice.org/50559 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'lotuswordpro')
-rw-r--r--lotuswordpro/source/filter/lwplayout.cxx4
1 files changed, 4 insertions, 0 deletions
diff --git a/lotuswordpro/source/filter/lwplayout.cxx b/lotuswordpro/source/filter/lwplayout.cxx
index 931539851d46..e753d4722725 100644
--- a/lotuswordpro/source/filter/lwplayout.cxx
+++ b/lotuswordpro/source/filter/lwplayout.cxx
@@ -518,13 +518,17 @@ void LwpHeadLayout::RegisterStyle()
rtl::Reference<LwpVirtualLayout> LwpHeadLayout::FindEnSuperTableLayout()
{
rtl::Reference<LwpVirtualLayout> xLayout(dynamic_cast<LwpVirtualLayout*>(GetChildHead().obj().get()));
+ std::set<LwpVirtualLayout*> aSeen;
while (xLayout.get())
{
+ aSeen.insert(xLayout.get());
if (xLayout->GetLayoutType() == LWP_ENDNOTE_SUPERTABLE_LAYOUT)
{
return xLayout;
}
xLayout.set(dynamic_cast<LwpVirtualLayout*>(xLayout->GetNext().obj().get()));
+ if (aSeen.find(xLayout.get()) != aSeen.end())
+ throw std::runtime_error("loop in conversion");
}
return rtl::Reference<LwpVirtualLayout>();
}