[Libreoffice-commits] core.git: cui/source
Muhammet Kara (via logerrit)
logerrit at kemper.freedesktop.org
Sun May 30 05:11:47 UTC 2021
cui/source/dialogs/AdditionsDialog.cxx | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
New commits:
commit e98b0891d6e0f1d6be4e4a4761bd1ab16bfab85c
Author: Muhammet Kara <muhammet.kara at collabora.com>
AuthorDate: Sat May 29 18:17:54 2021 +0300
Commit: Muhammet Kara <muhammet.kara at collabora.com>
CommitDate: Sun May 30 07:11:05 2021 +0200
tdf#136292: Fix crash on invalid JSON from the extensions API
Change-Id: I91ed555f93173dee10e87025b231560693be50b5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116390
Tested-by: Jenkins
Reviewed-by: Muhammet Kara <muhammet.kara at collabora.com>
diff --git a/cui/source/dialogs/AdditionsDialog.cxx b/cui/source/dialogs/AdditionsDialog.cxx
index 344bcf5f9ba3..5ca2d10051ec 100644
--- a/cui/source/dialogs/AdditionsDialog.cxx
+++ b/cui/source/dialogs/AdditionsDialog.cxx
@@ -52,6 +52,7 @@
#include <com/sun/star/task/XInteractionApprove.hpp>
#include <orcus/json_document_tree.hpp>
+#include <orcus/json_parser.hpp>
#include <orcus/config.hpp>
#include <orcus/pstring.hpp>
@@ -131,7 +132,15 @@ void parseResponse(const std::string& rResponse, std::vector<AdditionInfo>& aAdd
if (rResponse.empty())
return;
- aJsonDoc.load(rResponse, aConfig);
+ try
+ {
+ aJsonDoc.load(rResponse, aConfig);
+ }
+ catch (const orcus::json::parse_error&)
+ {
+ TOOLS_WARN_EXCEPTION("cui.dialogs", "Invalid JSON file from the extensions API");
+ return;
+ }
auto aDocumentRoot = aJsonDoc.get_document_root();
if (aDocumentRoot.type() != orcus::json::node_t::object)
More information about the Libreoffice-commits
mailing list