sc/source/core/inc/arraysumfunctor.hxx | 7 +++++-- sc/source/core/tool/scmatrix.cxx | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-)
New commits: commit 9b7f72203f2b9f6b95d927c695f7f48b86b251ee Author: Marco Cecchetti <marco.cecche...@collabora.com> Date: Mon Feb 29 22:18:23 2016 +0100 tdf#97369/#97587 - Further fix SUMming in the software interpreter When SUMming in the software interpreter involved trailing empty cells, code tried to read beyond numeric array limit. Change-Id: I50c1148e7e79d02bedb02a771df172035112915c diff --git a/sc/source/core/inc/arraysumfunctor.hxx b/sc/source/core/inc/arraysumfunctor.hxx index 3955fd9..d94bf74 100644 --- a/sc/source/core/inc/arraysumfunctor.hxx +++ b/sc/source/core/inc/arraysumfunctor.hxx @@ -51,12 +51,15 @@ public: if (hasSSE2) { - while (!isAligned<double, 16>(pCurrent)) + while ( i < mnSize && !isAligned<double, 16>(pCurrent)) { fSum += *pCurrent++; i++; } - fSum += executeSSE2(i, pCurrent); + if( i < mnSize ) + { + fSum += executeSSE2(i, pCurrent); + } } else fSum += executeUnrolled(i, pCurrent); diff --git a/sc/source/core/tool/scmatrix.cxx b/sc/source/core/tool/scmatrix.cxx index 6018ca1..e2dde4e 100644 --- a/sc/source/core/tool/scmatrix.cxx +++ b/sc/source/core/tool/scmatrix.cxx @@ -3401,7 +3401,7 @@ ScMatrix::IterateResult ScVectorRefMatrix::Sum(bool bTextAsZero) const { return ScMatrix::IterateResult(0.0, 0.0, 0); } - else if (nDataSize > mpToken->GetArrayLength() + mnRowStart) + else if (nDataSize > mpToken->GetArrayLength() - mnRowStart) { nDataSize = mpToken->GetArrayLength() - mnRowStart; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits