From 3a05b353f6d8a08536f324f46778d2a1356778e8 Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Fri, 16 Jan 2015 22:40:36 +0100 Subject: don't access empty range list, could be rhbz#1180312 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ScRangeList::DeleteArea() may remove an entire range, if it was the last range a subsequent call to ScConditionalFormat::DeleteArea() would attempt to access an invalid first element. Change-Id: I8d68c27963dc8561d61a94980093c271bd3aaffb (cherry picked from commit 9af8e14e67d354bb7736271a76a3dd8b6da78fd9) Reviewed-on: https://gerrit.libreoffice.org/13964 Reviewed-by: Christian Lohmaier Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- sc/source/core/data/conditio.cxx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx index 794fb5695add..35a827fb5134 100644 --- a/sc/source/core/data/conditio.cxx +++ b/sc/source/core/data/conditio.cxx @@ -2064,6 +2064,9 @@ void ScConditionalFormat::UpdateMoveTab( sc::RefUpdateMoveTabContext& rCxt ) void ScConditionalFormat::DeleteArea( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ) { + if (maRanges.empty()) + return; + SCTAB nTab = maRanges[0]->aStart.Tab(); maRanges.DeleteArea( nCol1, nRow1, nTab, nCol2, nRow2, nTab ); } -- cgit v1.2.3