[Libreoffice-commits] .: Branch 'libreoffice-4-0' - sc/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Fri Dec 14 19:34:41 PST 2012
sc/source/core/data/dpcache.cxx | 5 +++++
sc/source/core/data/dpshttab.cxx | 8 ++++++++
2 files changed, 13 insertions(+)
New commits:
commit 3cd99bc974c25b4066cf68c40d94c821dd413950
Author: Kohei Yoshida <kohei.yoshida at gmail.com>
Date: Fri Dec 14 22:34:38 2012 -0500
Do extra check on source range to make sure no funny things happen.
Like a crash in the pivot layout dialog... :-/
Change-Id: I9a330ee3f39ebacb7299d24868bb13ee2a9c3ec5
diff --git a/sc/source/core/data/dpcache.cxx b/sc/source/core/data/dpcache.cxx
index afa4b1b..cf03b0d 100644
--- a/sc/source/core/data/dpcache.cxx
+++ b/sc/source/core/data/dpcache.cxx
@@ -300,6 +300,11 @@ bool ScDPCache::InitFromDoc(ScDocument* pDoc, const ScRange& rRange)
SCROW nStartRow = rRange.aStart.Row(); // start of data
SCROW nEndRow = rRange.aEnd.Row();
+
+ // Sanity check
+ if (!ValidRow(nStartRow) || !ValidRow(nEndRow) || nEndRow-nStartRow <= 0)
+ return false;
+
sal_uInt16 nStartCol = rRange.aStart.Col();
sal_uInt16 nEndCol = rRange.aEnd.Col();
sal_uInt16 nDocTab = rRange.aStart.Tab();
diff --git a/sc/source/core/data/dpshttab.cxx b/sc/source/core/data/dpshttab.cxx
index b9de61f..ccf4659 100644
--- a/sc/source/core/data/dpshttab.cxx
+++ b/sc/source/core/data/dpshttab.cxx
@@ -312,6 +312,14 @@ sal_uLong ScSheetSourceDesc::CheckSourceRange() const
if (!mpDoc)
return STR_ERR_DATAPILOTSOURCE;
+ // Make sure the range is valid and sane.
+ const ScRange& rSrcRange = GetSourceRange();
+ if (!rSrcRange.IsValid())
+ return STR_ERR_DATAPILOTSOURCE;
+
+ if (rSrcRange.aStart.Col() > rSrcRange.aEnd.Col() || rSrcRange.aStart.Row() > rSrcRange.aEnd.Row())
+ return STR_ERR_DATAPILOTSOURCE;
+
return 0;
}
More information about the Libreoffice-commits
mailing list