summaryrefslogtreecommitdiff
path: root/sc/source
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-05-28 21:22:56 +0100
committerChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2018-05-29 21:54:36 +0200
commit69c5be9b26cf1a45e220d69f65b1bb0fa2aedaf6 (patch)
treed46b655b267ad61c012bfb5acd433516e2261e0a /sc/source
parentd9c5e7f4aef8da58b2b59e3259d1704296648cbf (diff)
forcepoint#40 null deref
presumably since commit 0098bee792c3e208ea4f6ef1c676958d3f4cd207 Date: Thu Sep 21 06:48:09 2017 +0200 tdf#112501: Pivot table: popupbuttons are placed on wrong cells Change-Id: I5413c0ba06fca25cb22256a20ef9640767dd9e50 Reviewed-on: https://gerrit.libreoffice.org/54970 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Diffstat (limited to 'sc/source')
-rw-r--r--sc/source/filter/excel/xipivot.cxx8
1 files changed, 4 insertions, 4 deletions
diff --git a/sc/source/filter/excel/xipivot.cxx b/sc/source/filter/excel/xipivot.cxx
index e63db6cdb1ab..669d6262cc2d 100644
--- a/sc/source/filter/excel/xipivot.cxx
+++ b/sc/source/filter/excel/xipivot.cxx
@@ -1566,13 +1566,13 @@ void XclImpPivotTable::ApplyMergeFlags(const ScRange& rOutRange, const ScDPSaveD
itr = aFieldBtns.begin();
itrEnd = aFieldBtns.end();
vector<const ScDPSaveDimension*>::const_iterator itDim = aFieldDims.begin();
- for (; itr != itrEnd; ++itr, ++itDim)
+ for (; itr != itrEnd; ++itr)
{
ScMF nMFlag = ScMF::Button;
- const ScDPSaveDimension* pDim = *itDim;
- if (pDim->HasInvisibleMember())
+ const ScDPSaveDimension* pDim = itDim != aFieldDims.end() ? *itDim++ : nullptr;
+ if (pDim && pDim->HasInvisibleMember())
nMFlag |= ScMF::HiddenMember;
- if (!pDim->IsDataLayout())
+ if (!pDim || !pDim->IsDataLayout())
nMFlag |= ScMF::ButtonPopup;
rDoc.ApplyFlagsTab(itr->Col(), itr->Row(), itr->Col(), itr->Row(), itr->Tab(), nMFlag);
}