summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorVasily Melenchuk <vasily.melenchuk@cib.de>2020-11-04 13:37:01 +0300
committerMichael Stahl <michael.stahl@allotropia.de>2021-01-25 13:17:50 +0100
commit871284c658a9cd623e5f001dbb5be8856892ce59 (patch)
treea79cdb1dd2c1642681fc9d233fab85b52260d2fa /writerfilter
parentd1c2e29bfef07541fdd19b599b8df8ad302708dd (diff)
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.Behrens@CIB.de> (cherry picked from commit 0d84e4bed71a1083c5189408aea5922a34b40686) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105227 Tested-by: Vasily Melenchuk <vasily.melenchuk@cib.de> Reviewed-by: Michael Stahl <michael.stahl@cib.de>
Diffstat (limited to 'writerfilter')
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.hxx7
1 files changed, 5 insertions, 2 deletions
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx
index 360c753172b7..0e7f1fdfbcf8 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx
@@ -16,6 +16,7 @@
#include <boost/optional.hpp>
#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>
@@ -637,13 +638,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); }