diff --git a/lotuswordpro/source/filter/lwplayout.cxx b/lotuswordpro/source/filter/lwplayout.cxx index 373c6f34f9b5..8d157ddfb291 100644 --- a/lotuswordpro/source/filter/lwplayout.cxx +++ b/lotuswordpro/source/filter/lwplayout.cxx @@ -367,19 +367,25 @@ bool LwpVirtualLayout::IsStyleLayout() LwpVirtualLayout* LwpVirtualLayout::FindChildByType(LWP_LAYOUT_TYPE eType) { LwpObjectID& rID = GetChildHead(); + LwpVirtualLayout* pPrevLayout = nullptr; while(!rID.IsNull()) { LwpVirtualLayout * pLayout = dynamic_cast(rID.obj().get()); if (!pLayout) + break; + + if (pPrevLayout && pLayout == pPrevLayout) { + SAL_WARN("lwp", "loop in layout"); break; } + pPrevLayout = pLayout; + if (pLayout->GetLayoutType() == eType) - { return pLayout; - } + rID = pLayout->GetNext(); }