Fix coverity issues 11/318711/2 accepted/tizen_unified_x_asan accepted/tizen/unified/20250124.043538 accepted/tizen/unified/x/20250124.061119 accepted/tizen/unified/x/asan/20250211.003451
authorMateusz Moscicki <m.moscicki2@samsung.com>
Wed, 22 Jan 2025 11:51:12 +0000 (12:51 +0100)
committerMateusz Moscicki <m.moscicki2@samsung.com>
Wed, 22 Jan 2025 13:04:12 +0000 (14:04 +0100)
Change-Id: Id7f0fe4fd2d803d5d16c003dec33aa1cc9260856

src/dynamic-partitions/liblp/utility.h
src/dynamic-partitions/parse-dynparts/main.cpp
src/dynamic-partitions/resize-dynparts/main.cpp
src/upgrade-apply/patch/patch.c

index 209fc24cac74048aa9798f7e70dc7f1ebd3c5b95..107b52bff01253fd785be1a593483cef141f26d7 100644 (file)
@@ -107,7 +107,10 @@ class NewlineLogger {
   public:
     NewlineLogger(std::ostream& sink) : sink_(sink) {}
     ~NewlineLogger() {
-        sink_ << stream.str() << std::endl;
+        try {
+            sink_ << stream.str() << std::endl;
+        } catch(...) {
+        }
     }
 
     std::ostringstream stream;
index 72644e7b5644c242ebeab4f9997048f72c390b4e..1d657fc00aa5079205980dfcf91665f3bb0a9931 100644 (file)
@@ -33,36 +33,41 @@ int main(int argc, char* argv[]) {
   bool list_tables = false;
   bool free_space = false;
 
-  for (int i = 2; i < argc; ++i) {
-    if (std::string_view(argv[i]).compare("--list-tables") == 0) {
-      list_tables = true;
-    } else if (std::string_view(argv[i]).compare("--free-space") == 0) {
-      free_space = true;
-    } else {
-      usage(argv[0]);
-      return 1;
+  try {
+    for (int i = 2; i < argc; ++i) {
+      if (std::string_view(argv[i]).compare("--list-tables") == 0) {
+        list_tables = true;
+      } else if (std::string_view(argv[i]).compare("--free-space") == 0) {
+        free_space = true;
+      } else {
+        usage(argv[0]);
+        return 1;
+      }
     }
-  }
 
-  auto metadata = ReadMetadata(argv[1], 0);
+    auto metadata = ReadMetadata(argv[1], 0);
 
-  if (!metadata) {
-    cerr << "Failed to parse metadata from \"" << argv[1] << "\"" << endl;
-    return 1;
-  }
+    if (!metadata) {
+      cerr << "Failed to parse metadata from \"" << argv[1] << "\"" << endl;
+      return 1;
+    }
 
-  std::optional<std::string> out;
+    std::optional<std::string> out;
 
-  if (free_space) {
-    out = go_free(*metadata, list_tables, argv[1], cerr);
-  } else {
-    out = go(*metadata, list_tables, argv[1], cerr);
-  }
+    if (free_space) {
+      out = go_free(*metadata, list_tables, argv[1], cerr);
+    } else {
+      out = go(*metadata, list_tables, argv[1], cerr);
+    }
 
-  if (out)
-    cout << *out << "\n";
-  else
+    if (out)
+      cout << *out << "\n";
+    else
+      return 1;
+  } catch(...) {
+    cerr << "Error occured" << endl;
     return 1;
+  }
 
   return 0;
 }
index 6a18660fa60fbf9323f696f7137dce6b62398d55..5f9572e8e547bde5af727088d972f1faa4c88015 100644 (file)
@@ -41,26 +41,31 @@ int main(int argc, char* argv[]) {
 
     vector<update_cfg_record> update_cfg_records;
 
-    if (update_cfg_path != "" && !readFromUpdateCfgFile(update_cfg_path, update_cfg_records, cerr)) {
-        cerr << "Could not read from " << update_cfg_path << endl;
-        return 1;
-    }
+    try {
+        if (update_cfg_path != "" && !readFromUpdateCfgFile(update_cfg_path, update_cfg_records, cerr)) {
+            cerr << "Could not read from " << update_cfg_path << endl;
+            return 1;
+        }
 
-    auto metadata = android::fs_mgr::ReadMetadata(super_path, 0);
+        auto metadata = android::fs_mgr::ReadMetadata(super_path, 0);
 
-    if (!metadata) {
-        cerr << "Could not read super partition metadata for " << super_path << "\n";
-        return 1;
-    }
+        if (!metadata) {
+            cerr << "Could not read super partition metadata for " << super_path << "\n";
+            return 1;
+        }
 
-    auto metadata_new = go(*metadata, slot, update_cfg_records, cerr);
+        auto metadata_new = go(*metadata, slot, update_cfg_records, cerr);
 
-    if (metadata_new == nullptr) {
-        return 1;
-    }
+        if (metadata_new == nullptr) {
+            return 1;
+        }
 
-    if (!UpdatePartitionTable(super_path, *metadata_new, 0)) {
-        cerr << "Failed to write metadata.";
+        if (!UpdatePartitionTable(super_path, *metadata_new, 0)) {
+            cerr << "Failed to write metadata.";
+            return 1;
+        }
+    } catch(...) {
+        cerr << "Error occured" << endl;
         return 1;
     }
 }
index 0e4cba529988f2cfed7eefd700a530287809c769..93989aec11a338f321dc05b12044e55bbae3b748 100644 (file)
@@ -381,8 +381,10 @@ int apply_patch(const char *source_file, const char *dest_file, TAR *patch_tar,
     if ((res = remmap(&data.src, 0)) != PF_OK)
         return res;
 
-    if ((res = remmap(&data.dest, 0)) != PF_OK)
+    if ((res = remmap(&data.dest, 0)) != PF_OK) {
+        free_data(&data, funcs);
         return res;
+    }
 
     uint64_t progress_report_block_count = 0;
     if (block_count != NULL) {