summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorKatarina Behrens <bubli@bubli.org>2013-09-13 17:29:12 +0200
committerKatarina Behrens <bubli@bubli.org>2013-09-13 17:29:12 +0200
commit3750deae3e2d8fcf8bcf795fe327e1da370a2c4d (patch)
treeb4f8ff8c87f74b50d8e3f4b41e9df26d6c12168d /oox
parentd52182d364a271fa21df2f2dd96cd79ff7a38836 (diff)
Avoid crash when a comment contains data, but no text
calling back() on empty vector results in undef behaviour Crash originally reported here: http://lists.freedesktop.org/archives/libreoffice/2013-September/055827.html Change-Id: Ibefdc7e2495fc31d748c16fedd3cee5eb957bfa2
Diffstat (limited to 'oox')
-rw-r--r--oox/source/ppt/presentationfragmenthandler.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/oox/source/ppt/presentationfragmenthandler.cxx b/oox/source/ppt/presentationfragmenthandler.cxx
index 247b81b981a1..826130cf65a9 100644
--- a/oox/source/ppt/presentationfragmenthandler.cxx
+++ b/oox/source/ppt/presentationfragmenthandler.cxx
@@ -323,8 +323,12 @@ void PresentationFragmentHandler::importSlide(sal_uInt32 nSlide, sal_Bool bFirst
//set comment chars for last comment on slide
SlideFragmentHandler* comment_handler =
dynamic_cast<SlideFragmentHandler*>(xCommentsFragmentHandler.get());
+ // some comments have no text -> set empty string as text to avoid
+ // crash (back() on empty vector is undefined) and losing other
+ // comment data that might be there (author, position, timestamp etc.)
pCommentsPersistPtr->getCommentsList().cmLst.back().setText(
- comment_handler->getCharVector().back() );
+ comment_handler->getCharVector().empty() ? "" :
+ comment_handler->getCharVector().back() );
pCommentsPersistPtr->getCommentAuthors().setValues(maAuthorList);
//insert all comments from commentsList