From b07cca0bb59300fe193015f1a8361448af72d05b Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sun, 27 Sep 2020 09:46:29 +0200 Subject: Validate json type after parsing --- src/plugins/Matrix.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/plugins/Matrix.cpp') diff --git a/src/plugins/Matrix.cpp b/src/plugins/Matrix.cpp index 71e451d..3ce6ffd 100644 --- a/src/plugins/Matrix.cpp +++ b/src/plugins/Matrix.cpp @@ -572,7 +572,7 @@ namespace QuickMedia { { "-H", "Authorization: Bearer " + access_token } }; - std::string filter = url_param_encode(Json::writeString(builder, request_data)); + std::string filter = url_param_encode(Json::writeString(builder, std::move(request_data))); char url[512]; snprintf(url, sizeof(url), "%s/_matrix/client/r0/rooms/%s/messages?from=%s&limit=20&dir=b&filter=%s", homeserver.c_str(), room_id.c_str(), from.c_str(), filter.c_str()); @@ -704,7 +704,7 @@ namespace QuickMedia { { "-X", "PUT" }, { "-H", "content-type: application/json" }, { "-H", "Authorization: Bearer " + access_token }, - { "--data-binary", Json::writeString(builder, request_data) } + { "--data-binary", Json::writeString(builder, std::move(request_data)) } }; char request_url[512]; @@ -874,7 +874,7 @@ namespace QuickMedia { std::vector additional_args = { { "-X", "POST" }, { "-H", "content-type: application/json" }, - { "--data-binary", Json::writeString(builder, request_data) } + { "--data-binary", Json::writeString(builder, std::move(request_data)) } }; std::string server_response; @@ -956,6 +956,9 @@ namespace QuickMedia { return PluginResult::ERR; } + if(!json_root.isObject()) + return PluginResult::ERR; + const Json::Value &user_id_json = json_root["user_id"]; if(!user_id_json.isString()) { fprintf(stderr, "Failed to parse matrix cached session response\n"); -- cgit v1.2.3