From fcdd49f47a924c0eff7b9f7d9669d11b39327cfc Mon Sep 17 00:00:00 2001 From: Mateusz Moscicki Date: Wed, 22 Jan 2025 12:51:12 +0100 Subject: [PATCH] Fix coverity issues Change-Id: Id7f0fe4fd2d803d5d16c003dec33aa1cc9260856 --- src/dynamic-partitions/liblp/utility.h | 5 +- .../parse-dynparts/main.cpp | 51 ++++++++++--------- .../resize-dynparts/main.cpp | 35 +++++++------ src/upgrade-apply/patch/patch.c | 4 +- 4 files changed, 55 insertions(+), 40 deletions(-) diff --git a/src/dynamic-partitions/liblp/utility.h b/src/dynamic-partitions/liblp/utility.h index 209fc24..107b52b 100644 --- a/src/dynamic-partitions/liblp/utility.h +++ b/src/dynamic-partitions/liblp/utility.h @@ -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; diff --git a/src/dynamic-partitions/parse-dynparts/main.cpp b/src/dynamic-partitions/parse-dynparts/main.cpp index 72644e7..1d657fc 100644 --- a/src/dynamic-partitions/parse-dynparts/main.cpp +++ b/src/dynamic-partitions/parse-dynparts/main.cpp @@ -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 out; + std::optional 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; } diff --git a/src/dynamic-partitions/resize-dynparts/main.cpp b/src/dynamic-partitions/resize-dynparts/main.cpp index 6a18660..5f9572e 100644 --- a/src/dynamic-partitions/resize-dynparts/main.cpp +++ b/src/dynamic-partitions/resize-dynparts/main.cpp @@ -41,26 +41,31 @@ int main(int argc, char* argv[]) { vector 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; } } diff --git a/src/upgrade-apply/patch/patch.c b/src/upgrade-apply/patch/patch.c index 0e4cba5..93989ae 100644 --- a/src/upgrade-apply/patch/patch.c +++ b/src/upgrade-apply/patch/patch.c @@ -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) { -- 2.34.1