summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-05-09 11:44:51 -0400
committerKohei Yoshida <kohei.yoshida@collabora.com>2014-05-09 11:46:06 -0400
commita45973a90625f4b9e0f603154194f357ff2418d4 (patch)
tree56244f6fe876004579be11619d891f6dffdc1180
parentcd87cd92b95861e5cacb111dc33a809a9db884e3 (diff)
fdo#77806: Check the boundaries before accessing an array....
Change-Id: I0878f734599f566cde83183947cd7613c0f8d5c6
-rw-r--r--sc/source/core/data/document.cxx20
1 files changed, 18 insertions, 2 deletions
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 181f29496057..414abd434953 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -6135,14 +6135,30 @@ bool ScDocument::HasNote(const ScAddress& rPos) const
{
return HasNote(rPos.Col(), rPos.Row(), rPos.Tab());
}
+
bool ScDocument::HasNote(SCCOL nCol, SCROW nRow, SCTAB nTab) const
{
- const ScPostIt* pNote = maTabs[nTab]->aCol[nCol].GetCellNote(nRow);
+ if (!ValidColRow(nCol, nRow))
+ return false;
+
+ const ScTable* pTab = FetchTable(nTab);
+ if (!pTab)
+ return false;
+
+ const ScPostIt* pNote = pTab->aCol[nCol].GetCellNote(nRow);
return pNote != NULL;
}
+
bool ScDocument::HasColNotes(SCCOL nCol, SCTAB nTab) const
{
- return maTabs[nTab]->aCol[nCol].HasCellNotes();
+ if (!ValidCol(nCol))
+ return false;
+
+ const ScTable* pTab = FetchTable(nTab);
+ if (!pTab)
+ return false;
+
+ return pTab->aCol[nCol].HasCellNotes();
}
bool ScDocument::HasTabNotes(SCTAB nTab) const