diff options
author | jacobkeeler <jacob.keeler@livioradio.com> | 2017-06-22 13:44:16 -0400 |
---|---|---|
committer | jacobkeeler <jacob.keeler@livioradio.com> | 2017-06-22 13:44:16 -0400 |
commit | c877a40c26977f0e465289d61c7ca82735ada7f8 (patch) | |
tree | 7ac3a4aef73613fed3e4834aa9870eb3b9fb74d5 | |
parent | c79822b4674a5e0ca1a1cfbfbe4756baf9952c83 (diff) | |
download | sdl_core-c877a40c26977f0e465289d61c7ca82735ada7f8.tar.gz |
New fix for CID 171125, 171127, and 171128
Removed the rpc_hmi_permissions and rpc_parameter_permissions variables and used the rpc accessors instead. Otherwise comparisons were being made from iterators made from two different variables
-rw-r--r-- | src/components/policy/policy_external/src/policy_helper.cc | 64 |
1 files changed, 31 insertions, 33 deletions
diff --git a/src/components/policy/policy_external/src/policy_helper.cc b/src/components/policy/policy_external/src/policy_helper.cc index c8719eff16..cb27e7f0b3 100644 --- a/src/components/policy/policy_external/src/policy_helper.cc +++ b/src/components/policy/policy_external/src/policy_helper.cc @@ -575,40 +575,38 @@ void FillNotificationData::UpdateParameters( } void FillNotificationData::ExcludeSame(RpcPermissions& rpc) { - HMIPermissions& rpc_hmi_permissions = rpc.hmi_permissions; - HMIPermissions::iterator it_hmi_allowed = + HMIPermissions::const_iterator it_hmi_allowed = rpc.hmi_permissions.find(kAllowedKey); - HMIPermissions::iterator it_hmi_undefined = + HMIPermissions::const_iterator it_hmi_undefined = rpc.hmi_permissions.find(kUndefinedKey); - HMIPermissions::iterator it_hmi_user_disallowed = + HMIPermissions::const_iterator it_hmi_user_disallowed = rpc.hmi_permissions.find(kUserDisallowedKey); // There is different logic of processing RPCs with and w/o 'parameters' if (RpcParametersEmpty(rpc)) { // First, remove disallowed from other types - if (rpc_hmi_permissions.end() != it_hmi_user_disallowed) { - if (rpc_hmi_permissions.end() != it_hmi_allowed) { - ExcludeSameHMILevels(rpc_hmi_permissions[kAllowedKey], - rpc_hmi_permissions[kUserDisallowedKey]); + if (rpc.hmi_permissions.end() != it_hmi_user_disallowed) { + if (rpc.hmi_permissions.end() != it_hmi_allowed) { + ExcludeSameHMILevels(rpc.hmi_permissions[kAllowedKey], + rpc.hmi_permissions[kUserDisallowedKey]); } - if (rpc_hmi_permissions.end() != it_hmi_undefined) { - ExcludeSameHMILevels(rpc_hmi_permissions[kUndefinedKey], - rpc_hmi_permissions[kUserDisallowedKey]); + if (rpc.hmi_permissions.end() != it_hmi_undefined) { + ExcludeSameHMILevels(rpc.hmi_permissions[kUndefinedKey], + rpc.hmi_permissions[kUserDisallowedKey]); } } // Then, remove undefined from allowed - if (rpc_hmi_permissions.end() != it_hmi_undefined) { - if (rpc_hmi_permissions.end() != it_hmi_allowed) { - ExcludeSameHMILevels(rpc_hmi_permissions[kAllowedKey], - rpc_hmi_permissions[kUndefinedKey]); + if (rpc.hmi_permissions.end() != it_hmi_undefined) { + if (rpc.hmi_permissions.end() != it_hmi_allowed) { + ExcludeSameHMILevels(rpc.hmi_permissions[kAllowedKey], + rpc.hmi_permissions[kUndefinedKey]); } } return; } - ParameterPermissions& rpc_parameter_permissions = rpc.parameter_permissions; ParameterPermissions::const_iterator it_parameter_allowed = rpc.parameter_permissions.find(kAllowedKey); ParameterPermissions::const_iterator it_parameter_undefined = @@ -619,34 +617,34 @@ void FillNotificationData::ExcludeSame(RpcPermissions& rpc) { // First, removing allowed HMI levels from other types, permissions will be // dependent on parameters instead of HMI levels since w/o parameters RPC // won't passed to HMI - if (rpc_hmi_permissions.end() != it_hmi_allowed) { - if (rpc_hmi_permissions.end() != it_hmi_user_disallowed) { - ExcludeSameHMILevels(rpc_hmi_permissions[kUserDisallowedKey], - rpc_hmi_permissions[kAllowedKey]); + if (rpc.hmi_permissions.end() != it_hmi_allowed) { + if (rpc.hmi_permissions.end() != it_hmi_user_disallowed) { + ExcludeSameHMILevels(rpc.hmi_permissions[kUserDisallowedKey], + rpc.hmi_permissions[kAllowedKey]); } if (rpc.hmi_permissions.end() != it_hmi_undefined) { - ExcludeSameHMILevels(rpc_hmi_permissions[kUndefinedKey], - rpc_hmi_permissions[kAllowedKey]); + ExcludeSameHMILevels(rpc.hmi_permissions[kUndefinedKey], + rpc.hmi_permissions[kAllowedKey]); } } // Removing disallowed parameters from allowed and undefined (by user consent) - if (rpc_parameter_permissions.end() != it_parameter_user_disallowed) { - if (rpc_parameter_permissions.end() != it_parameter_allowed) { - ExcludeSameParameters(rpc_parameter_permissions[kAllowedKey], - rpc_parameter_permissions[kUserDisallowedKey]); + if (rpc.parameter_permissions.end() != it_parameter_user_disallowed) { + if (rpc.parameter_permissions.end() != it_parameter_allowed) { + ExcludeSameParameters(rpc.parameter_permissions[kAllowedKey], + rpc.parameter_permissions[kUserDisallowedKey]); } - if (rpc_parameter_permissions.end() != it_parameter_undefined) { - ExcludeSameParameters(rpc_parameter_permissions[kUndefinedKey], - rpc_parameter_permissions[kUserDisallowedKey]); + if (rpc.parameter_permissions.end() != it_parameter_undefined) { + ExcludeSameParameters(rpc.parameter_permissions[kUndefinedKey], + rpc.parameter_permissions[kUserDisallowedKey]); } } // Removing undefined (by user consent) parameters from allowed - if (rpc_parameter_permissions.end() != it_parameter_undefined) { - if (rpc_parameter_permissions.end() != it_parameter_allowed) { - ExcludeSameParameters(rpc_parameter_permissions[kAllowedKey], - rpc_parameter_permissions[kUndefinedKey]); + if (rpc.parameter_permissions.end() != it_parameter_undefined) { + if (rpc.parameter_permissions.end() != it_parameter_allowed) { + ExcludeSameParameters(rpc.parameter_permissions[kAllowedKey], + rpc.parameter_permissions[kUndefinedKey]); } } } |