diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2021-02-16 14:08:14 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2021-02-16 15:36:24 +0100 |
commit | 96d839a991d7d271adce37a41bccf54b015c9c35 (patch) | |
tree | d174752ad22c767ee40e5a1334c4d944998a74d2 /oox | |
parent | 21da461f374357198bafaea02e28d24de02c6772 (diff) |
Fix index out of range when vml-shape-types is missing
See https://lists.freedesktop.org/archives/libreoffice/2021-February/086844.html
Change-Id: Id38061c03dc80700872b41f54c679ee3120df9f2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110988
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/export/vmlexport.cxx | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/oox/source/export/vmlexport.cxx b/oox/source/export/vmlexport.cxx index a9e5dcf6d20c..07157edc3f85 100644 --- a/oox/source/export/vmlexport.cxx +++ b/oox/source/export/vmlexport.cxx @@ -1310,13 +1310,13 @@ sal_Int32 VMLExport::StartShape() // a predefined shape? static std::vector<OString> aShapeTypes = lcl_getShapeTypes(); - OString aShapeType = aShapeTypes[ m_nShapeType ]; - if ( aShapeType != "NULL" ) + SAL_WARN_IF(m_nShapeType >= aShapeTypes.size(), "oox.vml", "Unknown shape type!"); + if (m_nShapeType < aShapeTypes.size() && aShapeTypes[m_nShapeType] != "NULL") { bReferToShapeType = true; if ( !m_aShapeTypeWritten[ m_nShapeType ] ) { - m_pSerializer->write( aShapeType.getStr() ); + m_pSerializer->write(aShapeTypes[m_nShapeType]); m_aShapeTypeWritten[ m_nShapeType ] = true; } } |