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@collabora.com>
(cherry picked from commit e98b0891d6e0f1d6be4e4a4761bd1ab16bfab85c)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116168
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
diff --git a/cui/source/dialogs/AdditionsDialog.cxx b/cui/source/dialogs/AdditionsDialog.cxx
index 8bd5dee..a80e856 100644
--- a/cui/source/dialogs/AdditionsDialog.cxx
+++ b/cui/source/dialogs/AdditionsDialog.cxx
@@ -45,6 +45,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>

@@ -124,7 +125,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)