diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-05-09 11:44:51 -0400 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-05-09 11:46:06 -0400 |
commit | a45973a90625f4b9e0f603154194f357ff2418d4 (patch) | |
tree | 56244f6fe876004579be11619d891f6dffdc1180 | |
parent | cd87cd92b95861e5cacb111dc33a809a9db884e3 (diff) |
fdo#77806: Check the boundaries before accessing an array....
Change-Id: I0878f734599f566cde83183947cd7613c0f8d5c6
-rw-r--r-- | sc/source/core/data/document.cxx | 20 |
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 |