[Libreoffice-commits] core.git: oox/source

Katarina Behrens bubli at bubli.org
Fri Sep 13 08:41:30 PDT 2013


 oox/source/ppt/presentationfragmenthandler.cxx |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

New commits:
commit 3750deae3e2d8fcf8bcf795fe327e1da370a2c4d
Author: Katarina Behrens <bubli at bubli.org>
Date:   Fri Sep 13 17:29:12 2013 +0200

    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

diff --git a/oox/source/ppt/presentationfragmenthandler.cxx b/oox/source/ppt/presentationfragmenthandler.cxx
index 247b81b..826130c 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


More information about the Libreoffice-commits mailing list