diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-09-18 15:40:16 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2017-09-18 17:11:51 +0200 |
commit | 227d9d3fe598c089aee4421f0ad503acb85f3c4c (patch) | |
tree | 555fe41096d2e8c0db37617cccdcebe645fb7b00 /sc | |
parent | 9887c7ffc1a6060095496b2227460bad57e76d8e (diff) |
ofz#3412 SYLK import: check ;X;Y;C;R col/row validity early
Change-Id: I91fcd2571e528201e01467f3bcdbbff30cdfb50c
Reviewed-on: https://gerrit.libreoffice.org/42423
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/ui/docshell/impex.cxx | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sc/source/ui/docshell/impex.cxx b/sc/source/ui/docshell/impex.cxx index cd92f13e0586..3fe47e3ef4ee 100644 --- a/sc/source/ui/docshell/impex.cxx +++ b/sc/source/ui/docshell/impex.cxx @@ -1893,9 +1893,19 @@ bool ScImportExport::Sylk2Doc( SvStream& rStrm ) { case 'X': nCol = static_cast<SCCOL>(OUString(p).toInt32()) + nStartCol - 1; + if (nCol < 0 || MAXCOL < nCol) + { + SAL_WARN("sc.ui","ScImportExport::Sylk2Doc - ;X invalid nCol=" << nCol); + nCol = std::max<SCCOL>( 0, std::min<SCCOL>( nCol, MAXCOL)); + } break; case 'Y': nRow = OUString(p).toInt32() + nStartRow - 1; + if (nRow < 0 || MAXROW < nRow) + { + SAL_WARN("sc.ui","ScImportExport::Sylk2Doc - ;Y invalid nRow=" << nRow); + nRow = std::max<SCROW>( 0, std::min<SCROW>( nRow, MAXROW)); + } break; case 'P' : if ( bData ) |