summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIra Lytvynenko <ILytvynenko@luxoft.com>2017-11-08 15:21:53 +0200
committerAndriy Byzhynar <AByzhynar@luxoft.com>2018-01-26 11:38:09 +0200
commit8bc836e0b5074f92e5da2334d8567415b25f9353 (patch)
treed1b9070e80419728b8972cd2e0cf35f926e9ef3d
parent918a9f1016e27dac33b40a2dabf8f3e0aaff0b22 (diff)
downloadsdl_core-8bc836e0b5074f92e5da2334d8567415b25f9353.tar.gz
Fix core crash in case when HMI sends response with the result of an integer type
-rw-r--r--src/components/application_manager/src/application_manager_impl.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc
index cb97b01e88..538932974e 100644
--- a/src/components/application_manager/src/application_manager_impl.cc
+++ b/src/components/application_manager/src/application_manager_impl.cc
@@ -3279,6 +3279,22 @@ void ApplicationManagerImpl::Handle(const impl::MessageFromHmi message) {
return;
}
+ Json::Value value;
+ Json::Reader reader;
+ reader.parse(message->json_message(), value);
+ if (value.isMember(("result"))) {
+ if (!value["result"].isObject()) {
+ LOG4CXX_ERROR(logger_, "Invalid type of 'result' field.");
+ return;
+ }
+ }
+ if (value.isMember(("error"))) {
+ if (!value["error"].isObject()) {
+ LOG4CXX_ERROR(logger_, "Invalid type of 'error' field.");
+ return;
+ }
+ }
+
#ifdef SDL_REMOTE_CONTROL
if (plugin_manager_.IsHMIMessageForPlugin(message)) {
functional_modules::ProcessResult result =