update_engine: error out on bad compression factor am: 722f6f858a am: d12cad55a9
Original change: https://android-review.googlesource.com/c/platform/system/update_engine/+/3019784
Change-Id: Ife98864af60f725287b0677465e7ce85422ed4d5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/payload_generator/payload_generation_config.cc b/payload_generator/payload_generation_config.cc
index 470d622..839960e 100644
--- a/payload_generator/payload_generation_config.cc
+++ b/payload_generator/payload_generation_config.cc
@@ -228,7 +228,16 @@
compression_factor = "4096";
}
size_t compression_factor_value{};
- android::base::ParseUint(compression_factor, &compression_factor_value);
+ if (!android::base::ParseUint(compression_factor,
+ &compression_factor_value)) {
+ LOG(ERROR) << "failed to parse compression factor value: "
+ << compression_factor;
+ return false;
+ }
+ CHECK_EQ(static_cast<int>(compression_factor_value % kBlockSize), 0);
+ CHECK_EQ(static_cast<int>(compression_factor_value &
+ (compression_factor_value - 1)),
+ 0);
metadata->set_compression_factor(compression_factor_value);
}
dynamic_partition_metadata = std::move(metadata);