summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndriy Byzhynar <AByzhynar@luxoft.com>2017-12-15 16:19:51 +0200
committerAndriy Byzhynar <AByzhynar@luxoft.com>2017-12-15 16:19:51 +0200
commitd0fd1b59cdc99cf8e8319cf3e7aced2b63329b3a (patch)
treeda3ebcc4e0d94cd9c2d47209bb2d65adea574b91
parent0b19cf498d1c9972d67b85793dc6b029c26378a0 (diff)
downloadsdl_core-d0fd1b59cdc99cf8e8319cf3e7aced2b63329b3a.tar.gz
Add SDL behavor handling in case of RPC parameters field exists but empty
Added check for RPC parameters existence and emptiness Added necessary SDL behaviour for case specified above
-rw-r--r--src/components/policy/policy_regular/src/cache_manager.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/components/policy/policy_regular/src/cache_manager.cc b/src/components/policy/policy_regular/src/cache_manager.cc
index 98652656c3..6f3d3a66a8 100644
--- a/src/components/policy/policy_regular/src/cache_manager.cc
+++ b/src/components/policy/policy_regular/src/cache_manager.cc
@@ -463,6 +463,13 @@ void CacheManager::CheckPermissions(const policy_table::Strings& groups,
if (rpcs.rpcs.end() != rpc_iter) {
policy_table::RpcParameters rpc_param = rpc_iter->second;
+ if (rpc_param.parameters.is_initialized() &&
+ rpc_param.parameters->empty()) {
+ // If "parameters" field exist in PT section of incoming RPC but empty
+ // all params considered as DISALLOWED
+ result.hmi_level_permitted = kRpcDisallowed;
+ return;
+ }
policy_table::HmiLevel hmi_level_e;
policy_table::EnumFromJsonString(hmi_level, &hmi_level_e);