summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2014-09-30 10:43:37 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-10-01 08:02:36 +0000
commit97291b92b70249c1bcdca33425585b201a1822db (patch)
treeb2c1629470713fd08cec5ce87b07671251a2d8a7
parent3c8eb2fe90622afce3ee935000f8f549b5d0efa7 (diff)
Resolves: fdo#79129 Crash in oox::drawingml::LayoutNode::setupShape
Change-Id: I0bafd2c43d29806eea0ff0cb165e67aece53488f Reviewed-on: https://gerrit.libreoffice.org/11726 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
-rw-r--r--oox/source/drawingml/diagram/diagramlayoutatoms.cxx10
-rw-r--r--sw/qa/core/data/ooxml/pass/fdo79129.docxbin0 -> 47317 bytes
2 files changed, 9 insertions, 1 deletions
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
--- /dev/null
+++ b/sw/qa/core/data/ooxml/pass/fdo79129.docx
Binary files differ