diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-09-18 15:40:16 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2017-09-18 21:49:14 +0200 |
commit | 51854f5432de42bcc1154469edb5395328870613 (patch) | |
tree | 51365866ee7645927540c3dda301123cbb7f9f4a /sc | |
parent | 1eb3822d74f535f75aa336b27568ee8a6084c4dd (diff) |
ofz#3412 SYLK import: check ;X;Y;C;R col/row validity early
Change-Id: I91fcd2571e528201e01467f3bcdbbff30cdfb50c
Reviewed-on: https://gerrit.libreoffice.org/42426
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Eike Rathke <erack@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 7aa39d385a9c..a65f985541e6 100644 --- a/sc/source/ui/docshell/impex.cxx +++ b/sc/source/ui/docshell/impex.cxx @@ -1917,9 +1917,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 ) |