writerfilter/source/rtftok/rtfdocumentimpl.hxx |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

New commits:
commit 0d84e4bed71a1083c5189408aea5922a34b40686
Author:     Vasily Melenchuk <vasily.melenc...@cib.de>
AuthorDate: Wed Nov 4 13:37:01 2020 +0300
Commit:     Thorsten Behrens <thorsten.behr...@cib.de>
CommitDate: Wed Nov 4 14:38:54 2020 +0100

    RTF import: change exception type thrown on destination errors
    
    Previous exception (std::out_of_range) was not catch in case
    of invalid RTF imported: wrapping code checks only for
    uno::exception. This is not a case for loading file, but
    for parsing of clipboard containing invalid RTF it was causing
    fatal error, freeze and/or LO crash due to unhandled exception.
    
    I think there is no reason to add generic processing for
    std::exception in RTF filter: this can complicate diagnosing
    other potential problems. Instead let's throw UNO exception,
    like in other parts of RTF filter code.
    
    Change-Id: I064bbdc1559cc7700c96dbbeaf2911a2c8e0421e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105285
    Tested-by: Jenkins
    Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de>

diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx 
b/writerfilter/source/rtftok/rtfdocumentimpl.hxx
index 693cdb80d6a9..b1708ca470b5 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx
@@ -17,6 +17,7 @@
 #include <optional>
 
 #include <com/sun/star/text/WrapTextMode.hpp>
+#include <com/sun/star/io/WrongFormatException.hpp>
 #include <oox/mathml/importutils.hxx>
 #include <rtl/strbuf.hxx>
 #include <rtl/ustrbuf.hxx>
@@ -631,13 +632,15 @@ public:
     RTFParserState& top()
     {
         if (m_Impl.empty())
-            throw std::out_of_range("empty rtf state stack");
+            throw css::io::WrongFormatException(
+                "Parser state is empty! Invalid usage of destination braces in 
RTF?", nullptr);
         return m_Impl.back();
     }
     void pop()
     {
         if (m_Impl.empty())
-            throw std::out_of_range("empty rtf state stack");
+            throw css::io::WrongFormatException(
+                "Parser state is empty! Invalid usage of destination braces in 
RTF?", nullptr);
         return m_Impl.pop_back();
     }
     void push(RTFParserState const& rState) { return m_Impl.push_back(rState); 
}
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to