diff options
author | Ira Lytvynenko <ILytvynenko@luxoft.com> | 2017-11-08 15:21:53 +0200 |
---|---|---|
committer | Andriy Byzhynar <AByzhynar@luxoft.com> | 2018-01-26 11:38:09 +0200 |
commit | 8bc836e0b5074f92e5da2334d8567415b25f9353 (patch) | |
tree | d1b9070e80419728b8972cd2e0cf35f926e9ef3d | |
parent | 918a9f1016e27dac33b40a2dabf8f3e0aaff0b22 (diff) | |
download | sdl_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.cc | 16 |
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 = |