summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolan.mcnamara@collabora.com>2024-03-29 19:53:17 +0000
committerXisco Fauli <xiscofauli@libreoffice.org>2024-04-01 13:41:53 +0200
commitb2c3ca63d28f7849d33d7a0c6436102fdbf6dbbb (patch)
treea4b6b033d71f8692b84b95e0b1f8c47cd7c69925
parent00dabd046b6163adb223a6b3e2827a4a26b491cc (diff)
ofz#67708 ignore oversized colspans
that can't fit in SCCOL ignore negative colspan and rowspans too Change-Id: I79a010bcd7d9d84de70f6dac2e09614d6d448227 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165480 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
-rw-r--r--sc/source/filter/html/htmlpars.cxx12
1 files changed, 10 insertions, 2 deletions
diff --git a/sc/source/filter/html/htmlpars.cxx b/sc/source/filter/html/htmlpars.cxx
index 929eed83d6fa..e6b7daa3767b 100644
--- a/sc/source/filter/html/htmlpars.cxx
+++ b/sc/source/filter/html/htmlpars.cxx
@@ -923,12 +923,20 @@ void ScHTMLLayoutParser::TableDataOn( HtmlImportInfo* pInfo )
{
case HtmlOptionId::COLSPAN:
{
- mxActEntry->nColOverlap = static_cast<SCCOL>(rOption.GetString().toInt32());
+ sal_Int32 nColOverlap = rOption.GetString().toInt32();
+ if (nColOverlap >= 0 && nColOverlap <= SCCOL_MAX)
+ mxActEntry->nColOverlap = static_cast<SCCOL>(nColOverlap);
+ else
+ SAL_WARN("sc", "ScHTMLLayoutParser::TableDataOn ignoring colspan: " << nColOverlap);
}
break;
case HtmlOptionId::ROWSPAN:
{
- mxActEntry->nRowOverlap = static_cast<SCROW>(rOption.GetString().toInt32());
+ sal_Int32 nRowOverlap = rOption.GetString().toInt32();
+ if (nRowOverlap >= 0)
+ mxActEntry->nRowOverlap = static_cast<SCROW>(nRowOverlap);
+ else
+ SAL_WARN("sc", "ScHTMLLayoutParser::TableDataOn ignoring rowspan: " << nRowOverlap);
}
break;
case HtmlOptionId::ALIGN: