update_engine: use error_code for std::filesystem
std::filesystem functions can fail and throw an exception. Currently
update_engine does not handle exceptions. We should use the function
variant that does not throw exceptions instead (taking in an errorcode).
Bug: 358042228
Test: th
Change-Id: I1aaf79571307030cfccd980892404786d6cd12bb
diff --git a/common/prefs.cc b/common/prefs.cc
index 79d622f..77078cf 100644
--- a/common/prefs.cc
+++ b/common/prefs.cc
@@ -200,7 +200,12 @@
return false;
}
// Copy the directory.
- std::filesystem::copy(source_directory, destination_directory);
+ std::error_code e;
+ std::filesystem::copy(source_directory, destination_directory, e);
+ if (e) {
+ LOG(ERROR) << "failed to copy prefs to prefs_tmp: " << e.message();
+ return false;
+ }
return true;
}
@@ -209,7 +214,12 @@
std::filesystem::path destination_directory(GetTemporaryDir());
if (std::filesystem::exists(destination_directory)) {
- return std::filesystem::remove_all(destination_directory);
+ std::error_code e;
+ std::filesystem::remove_all(destination_directory, e);
+ if (e) {
+ LOG(ERROR) << "failed to remove directory: " << e.message();
+ return false;
+ }
}
return true;
}