checkpoint: Fix metadata file contents bug
In aosp/787759, Checkpoint changed the way kMetadataCPFile stored the
retry count, but didn't account for "-1" as a special case. As a result,
Checkpoint no longer reported `needsRollback` to be true when
`startCheckpoint(-1)` was called.
Bug: none
Test: presubmits (lmk if there's something better)
Change-Id: I4acb929eb3471409b986f74493993a9f1d84e4a5
diff --git a/Checkpoint.cpp b/Checkpoint.cpp
index 76e46fb..195a137 100644
--- a/Checkpoint.cpp
+++ b/Checkpoint.cpp
@@ -136,13 +136,16 @@
return error(ENOTSUP, "Checkpoints not supported");
if (retry < -1) return error(EINVAL, "Retry count must be more than -1");
- std::string content = std::to_string(retry + 1);
+ std::string content;
if (retry == -1) {
+ content = std::to_string(-1);
auto module = BootControlClient::WaitForService();
if (module) {
std::string suffix = module->GetSuffix(module->GetCurrentSlot());
if (!suffix.empty()) content += " " + suffix;
}
+ } else {
+ content = std::to_string(retry + 1);
}
if (!android::base::WriteStringToFile(content, kMetadataCPFile))
return error("Failed to write checkpoint file");