diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-08-17 09:15:02 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-08-17 11:29:24 +0200 |
commit | c05692cbcdcc820bb98b53af6dca09d13c804c00 (patch) | |
tree | 9e2d7d3b52364bf31e2a30cbdd55652b70d4683e | |
parent | loplugin:override (diff) | |
download | core-c05692cbcdcc820bb98b53af6dca09d13c804c00.tar.gz core-c05692cbcdcc820bb98b53af6dca09d13c804c00.zip |
ofz: infinite loop
Change-Id: Ie42e73ebe02cd4c2bb10c9d0e55a5256b1fffd15
Reviewed-on: https://gerrit.libreoffice.org/59248
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | lotuswordpro/source/filter/lwpdoc.cxx | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lotuswordpro/source/filter/lwpdoc.cxx b/lotuswordpro/source/filter/lwpdoc.cxx index 77dae05e68dc..a5ef2a7f4203 100644 --- a/lotuswordpro/source/filter/lwpdoc.cxx +++ b/lotuswordpro/source/filter/lwpdoc.cxx @@ -651,13 +651,16 @@ LwpDocument* LwpDocument::GetLastDivisionWithContents() return this; LwpDocument* pDivision = GetFirstDivision(); - + std::set<LwpDocument*> aSeen; while (pDivision) { + aSeen.insert(pDivision); LwpDocument* pContentDivision = pDivision->GetFirstDivisionWithContentsThatIsNotOLE(); - if(pContentDivision) + if (pContentDivision) return pContentDivision; pDivision = pDivision->GetNextDivision(); + if (aSeen.find(pDivision) != aSeen.end()) + throw std::runtime_error("loop in conversion"); } return nullptr; } |