From f89b4a7de1669c75e33748dae438c7c6c2b6524e Mon Sep 17 00:00:00 2001 From: Kohei Yoshida Date: Fri, 9 May 2014 11:44:51 -0400 Subject: fdo#77806: Check the boundaries before accessing an array.... Change-Id: I0878f734599f566cde83183947cd7613c0f8d5c6 (cherry picked from commit a45973a90625f4b9e0f603154194f357ff2418d4) Reviewed-on: https://gerrit.libreoffice.org/9292 Tested-by: Markus Mohrhard Reviewed-by: Markus Mohrhard --- sc/source/core/data/document.cxx | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index 8c69412d1beb..47164be8c49f 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -6113,14 +6113,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 -- cgit v1.2.3