UpdaterCommon: Move the updated file instead of copying

This prevents macOS from reading an old (cached) code signature on Mach-O executables.
This commit is contained in:
OatmealDome 2021-06-30 02:16:37 -04:00
parent 6042df71d9
commit dd5e0c6e15

View File

@ -460,7 +460,7 @@ bool UpdateFiles(const std::vector<TodoList::UpdateOp>& to_update,
std::string content_filename = HexEncode(op.new_hash.data(), op.new_hash.size()); std::string content_filename = HexEncode(op.new_hash.data(), op.new_hash.size());
fprintf(log_fp, "Updating file %s from content %s...\n", op.filename.c_str(), fprintf(log_fp, "Updating file %s from content %s...\n", op.filename.c_str(),
content_filename.c_str()); content_filename.c_str());
if (!File::Copy(temp_path + DIR_SEP + content_filename, path)) if (!File::Rename(temp_path + DIR_SEP + content_filename, path))
{ {
fprintf(log_fp, "Could not update file %s.\n", op.filename.c_str()); fprintf(log_fp, "Could not update file %s.\n", op.filename.c_str());
return false; return false;