Fix a static analysis issue 22/294322/3
authorSangyoon Jang <jeremy.jang@samsung.com>
Fri, 16 Jun 2023 05:00:24 +0000 (14:00 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Fri, 16 Jun 2023 07:23:02 +0000 (16:23 +0900)
Fix using invalid iterator.
Fix unnecessary copy operations.

Change-Id: I98bb01c6857eb02fa3640d706c5468e1d322ac62
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
src/wgt_manifest_handlers/launch_screen_handler.cc
src/wgt_manifest_handlers/permissions_handler.cc
src/wgt_manifest_handlers/provides_appdefined_privilege_handler.cc

index 272aff01439765051eba84608b9baa93e18ce05b..3659038af7ec49dc25bcaf613724b7e175c64932 100644 (file)
@@ -153,7 +153,7 @@ bool LaunchScreenHandler::ParseImages(const parser::DictionaryValue* dict,
   std::vector<std::string> images_pairs;
   boost::split(images_pairs, images_str, boost::is_any_of(kImageDelimiter));
 
-  for (auto image : images_pairs) {
+  for (auto& image : images_pairs) {
     std::vector<std::string> image_data;
 
     boost::algorithm::trim(image);
index 56b1e3f1d2b307739f2fc7a7549d7109df4d62db..18722e1e515557cc43be6007fafca98d9854de7e 100644 (file)
@@ -80,7 +80,7 @@ bool PermissionsHandler::Validate(
   const PermissionsInfo& permission_info =
       static_cast<const PermissionsInfo&>(data);
   auto api_permissions = permission_info.GetAPIPermissions();
-  for (auto permission : api_permissions) {
+  for (const auto& permission : api_permissions) {
     if (!parser::utils::IsValidIRI(permission)) {
       *error = "The permission is not valid IRI.";
       return false;
index d3a042d9e09c9ef4a21066faad17ebfeac641ae7..d770be33a08b0e03fa8da5f48d803958b74b1e84 100644 (file)
@@ -49,9 +49,13 @@ bool ProvidesAppDefinedPrivilegeHandler::Validate(
     const parser::ManifestData& data,
     const parser::ManifestDataMap& handlers_output,
     std::string* error) const {
+  auto it = handlers_output.find(TizenApplicationInfo::Key());
+  if (it == handlers_output.end()) {
+    *error = "TizenApplicationInfo handler is not found.";
+    return false;
+  }
   const TizenApplicationInfo& app_info =
-        static_cast<const TizenApplicationInfo&>(
-          *handlers_output.find(TizenApplicationInfo::Key())->second);
+        static_cast<const TizenApplicationInfo&>(*it->second);
   const AppDefinedPrivilegeInfoList& privileges =
       static_cast<const AppDefinedPrivilegeInfoList&>(data);
   for (const auto& priv : privileges.appdefined_privileges) {