[Libreoffice-commits] core.git: Branch 'libreoffice-5-1' - 2 commits - writerfilter/source

Caolán McNamara caolanm at redhat.com
Thu Sep 8 21:09:46 UTC 2016


 writerfilter/source/rtftok/rtfdocumentimpl.cxx |    4 ++--
 writerfilter/source/rtftok/rtftokenizer.cxx    |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 4112594d60961d2d1a6b0f90422ce1b0924bf07d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Sep 6 20:19:04 2016 +0100

    rtf: don't skip backwards on skipping bin specified bytes
    
    otherwise we could end up re-parsing the block endlessly
    
    Change-Id: Ia90a9e5b513951c91e1917483f9e030dbee98ffb
    Reviewed-on: https://gerrit.libreoffice.org/28710
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/writerfilter/source/rtftok/rtftokenizer.cxx b/writerfilter/source/rtftok/rtftokenizer.cxx
index cb78085..1afbc10 100644
--- a/writerfilter/source/rtftok/rtftokenizer.cxx
+++ b/writerfilter/source/rtftok/rtftokenizer.cxx
@@ -285,7 +285,7 @@ RTFError RTFTokenizer::dispatchKeyword(OString& rKeyword, bool bParam, int nPara
     {
         // skip binary data explicitely, to not trip over rtf markup
         // control characters
-        if (rKeyword.equals("bin"))
+        if (rKeyword.equals("bin") && nParam > 0)
             Strm().SeekRel(nParam);
         return RTFError::OK;
     }
commit 10da1cf5b1e2446470b4892f0e49132217baf33d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Sep 6 20:31:06 2016 +0100

    rtf: throw early on a bad nestrow token
    
    Reviewed-on: https://gerrit.libreoffice.org/28708
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit 5e9982668224345f901631d664985e823530e05a)
    
    Change-Id: I9de8d09bce18fd1e8a145617794594a99a5f996e
    Reviewed-on: https://gerrit.libreoffice.org/28713
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 1910baf..48a3707 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -2287,12 +2287,12 @@ RTFError RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword)
                           pBuffer->pRowProperties,
                           m_nNestedCells, m_nNestedCurrentCellX);
 
-        assert(m_aStates.top().pCurrentBuffer == &m_aTableBufferStack.back());
-        if (m_aTableBufferStack.size() == 1)
+        if (m_aTableBufferStack.size() == 1 || !m_aStates.top().pCurrentBuffer)
         {
             throw io::WrongFormatException(
                 "mismatch between \\itap and number of \\nestrow", nullptr);
         }
+        assert(m_aStates.top().pCurrentBuffer == &m_aTableBufferStack.back());
         // note: there may be several states pointing to table buffer!
         for (size_t i = 0; i < m_aStates.size(); ++i)
         {


More information about the Libreoffice-commits mailing list