[Libreoffice-commits] core.git: sw/source
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Mon Oct 12 07:48:35 UTC 2020
sw/source/filter/ww8/ww8scan.cxx | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
New commits:
commit 7ddb7d30d44008f5873d20dbcd11a1afd46a3ec5
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sun Oct 11 16:10:11 2020 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon Oct 12 09:47:47 2020 +0200
ofz#23602 Timeout processing huge SEPX full of non-SEP properties
Change-Id: If95bf624e4bd18368f41b350fc3675e2675576c3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104190
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
index 09b43d02f52f..bc7275ea3d6b 100644
--- a/sw/source/filter/ww8/ww8scan.cxx
+++ b/sw/source/filter/ww8/ww8scan.cxx
@@ -5191,22 +5191,25 @@ bool WW8PLCFMan::IsSprmLegalForCategory(sal_uInt16 nSprmId, short nIdx) const
bool bRet;
ww::WordVersion eVersion = maSprmParser.GetFIBVersion();
if (eVersion <= ww::eWW2)
- {
bRet = nSprmId >= 112 && nSprmId <= 145;
- SAL_WARN_IF(!bRet, "sw.ww8", "sprm, id " << nSprmId << " wrong category for section properties");
- assert(bRet && "once off crashtesting scan for real world cases");
- }
- else if (eVersion < ww::eWW8) // just check ww6/7 for now
- {
+ else if (eVersion < ww::eWW8)
bRet = nSprmId >= NS_sprm::v6::sprmSScnsPgn && nSprmId <= NS_sprm::v6::sprmSDMPaperReq;
- SAL_WARN_IF(!bRet, "sw.ww8", "sprm, id " << nSprmId << " wrong category for section properties");
- }
else
{
- // we could pull the sgc from the SprmId in this case
- bRet = true;
+ /*
+ Sprm bits: 10-12 sgc sprm group; type of sprm (PAP, CHP, etc)
+
+ sgc value type of sprm
+ 1 PAP
+ 2 CHP
+ 3 PIC
+ 4 SEP
+ 5 TAP
+ */
+ auto nSGC = ((nSprmId & 0x1C00) >> 10);
+ bRet = nSGC == 4;
}
-
+ SAL_WARN_IF(!bRet, "sw.ww8", "sprm, id " << nSprmId << " wrong category for section properties");
return bRet;
}
More information about the Libreoffice-commits
mailing list