From 97291b92b70249c1bcdca33425585b201a1822db Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Tue, 30 Sep 2014 10:43:37 +0100 Subject: Resolves: fdo#79129 Crash in oox::drawingml::LayoutNode::setupShape Change-Id: I0bafd2c43d29806eea0ff0cb165e67aece53488f Reviewed-on: https://gerrit.libreoffice.org/11726 Reviewed-by: Miklos Vajna Tested-by: Miklos Vajna --- oox/source/drawingml/diagram/diagramlayoutatoms.cxx | 10 +++++++++- sw/qa/core/data/ooxml/pass/fdo79129.docx | Bin 0 -> 47317 bytes 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 sw/qa/core/data/ooxml/pass/fdo79129.docx diff --git a/oox/source/drawingml/diagram/diagramlayoutatoms.cxx b/oox/source/drawingml/diagram/diagramlayoutatoms.cxx index ba1f8574961e..fc07a900d824 100644 --- a/oox/source/drawingml/diagram/diagramlayoutatoms.cxx +++ b/oox/source/drawingml/diagram/diagramlayoutatoms.cxx @@ -400,7 +400,15 @@ bool LayoutNode::setupShape( const ShapePtr& rShape, const Diagram& rDgm, sal_uI const DiagramData::StringMap::value_type::second_type::const_iterator aVecEnd=aNodeName->second.end(); while( aVecIter != aVecEnd ) { - DiagramData::PointNameMap::const_iterator aDataNode2=rDgm.getData()->getPointNameMap().find(aVecIter->first); + DiagramData::PointNameMap& rMap = rDgm.getData()->getPointNameMap(); + DiagramData::PointNameMap::const_iterator aDataNode2 = rMap.find(aVecIter->first); + if (aDataNode2 == rMap.end()) + { + //busted, skip it + ++aVecIter; + continue; + } + if( aVecIter->second == 0 ) { // grab shape attr from topmost element(s) diff --git a/sw/qa/core/data/ooxml/pass/fdo79129.docx b/sw/qa/core/data/ooxml/pass/fdo79129.docx new file mode 100644 index 000000000000..46ff0f5ee552 Binary files /dev/null and b/sw/qa/core/data/ooxml/pass/fdo79129.docx differ -- cgit v1.2.3