diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-05-28 21:22:56 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-05-29 10:03:10 +0200 |
commit | 0162cfd55f397ded2af7d32f50cb3cba763c68bc (patch) | |
tree | 853dffbeefd3f3918c643c1f7e02864aacd7a6b9 /sc | |
parent | b69457c1a5cb31c8b0fb3d047e2826bc3d61fea4 (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/54968
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/qa/unit/data/xls/forcepoint-pivot-1.xls | bin | 0 -> 28160 bytes | |||
-rw-r--r-- | sc/source/filter/excel/xipivot.cxx | 8 |
2 files changed, 4 insertions, 4 deletions
diff --git a/sc/qa/unit/data/xls/forcepoint-pivot-1.xls b/sc/qa/unit/data/xls/forcepoint-pivot-1.xls Binary files differnew file mode 100644 index 000000000000..12919922666b --- /dev/null +++ b/sc/qa/unit/data/xls/forcepoint-pivot-1.xls diff --git a/sc/source/filter/excel/xipivot.cxx b/sc/source/filter/excel/xipivot.cxx index 118e9a014691..b0452408054b 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); } |