summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2022-09-07 21:50:24 +0300
committerMiklos Vajna <vmiklos@collabora.com>2022-09-08 08:25:17 +0200
commit467308d679a3f2b4bbdd117fcc73636d57d66c09 (patch)
treed7cb3c7870710966e8e875d8c1062de056a4031a
parenteeca59964629f302802eeb03c4537fa6f7558a66 (diff)
tdf#150846: FilterOptions in descriptor could come from import filter
Tolerate failure parsing json here. Unfortunately this means that we can't provide a diagnostics to user when they provide bad json in the command line parameters. Change-Id: Ia3fa18e709a4c0b891faf4365453b79e6c58a9c6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139613 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
-rw-r--r--filter/source/pdf/pdffilter.cxx18
1 files changed, 14 insertions, 4 deletions
diff --git a/filter/source/pdf/pdffilter.cxx b/filter/source/pdf/pdffilter.cxx
index d7fc558d198e..f12559bfe3df 100644
--- a/filter/source/pdf/pdffilter.cxx
+++ b/filter/source/pdf/pdffilter.cxx
@@ -33,6 +33,8 @@
#include <comphelper/propertysequence.hxx>
#include <comphelper/sequence.hxx>
+#include <boost/property_tree/json_parser/error.hpp>
+
using namespace ::com::sun::star::io;
PDFFilter::PDFFilter( const Reference< XComponentContext > &rxContext ) :
@@ -78,11 +80,19 @@ bool PDFFilter::implExport( const Sequence< PropertyValue >& rDescriptor )
pValue[i].Value >>= bIsRedactMode;
}
- if (!aFilterData.hasElements() && !aFilterOptions.isEmpty())
+ if (!aFilterData.hasElements() && aFilterOptions.startsWith("{"))
{
- // Allow setting filter data keys from the cmdline.
- std::vector<PropertyValue> aData = comphelper::JsonToPropertyValues(aFilterOptions.toUtf8());
- aFilterData = comphelper::containerToSequence(aData);
+ try
+ {
+ // Allow setting filter data keys from the cmdline.
+ std::vector<PropertyValue> aData
+ = comphelper::JsonToPropertyValues(aFilterOptions.toUtf8());
+ aFilterData = comphelper::containerToSequence(aData);
+ }
+ catch (const boost::property_tree::json_parser::json_parser_error&)
+ {
+ // This wasn't a valid json; maybe came from import filter (tdf#150846)
+ }
}
/* we don't get FilterData if we are exporting directly