Fix crash when hash tree isn't enabled but verity is
Test: th
Bug: 223110157
Change-Id: Idd254fb484ffabb3162e1f3232739cc29e00d51e
diff --git a/payload_consumer/verity_writer_android.cc b/payload_consumer/verity_writer_android.cc
index b669b4d..ffa2944 100644
--- a/payload_consumer/verity_writer_android.cc
+++ b/payload_consumer/verity_writer_android.cc
@@ -117,16 +117,18 @@
}
// All hash tree data blocks has been hashed, write hash tree to disk.
LOG(INFO) << "Writing verity hash tree to " << partition_->target_path;
- TEST_AND_RETURN_FALSE(hash_tree_builder_->BuildHashTree());
- TEST_AND_RETURN_FALSE_ERRNO(
- write_fd->Seek(partition_->hash_tree_offset, SEEK_SET));
- auto success =
- hash_tree_builder_->WriteHashTree([write_fd](auto data, auto size) {
- return utils::WriteAll(write_fd, data, size);
- });
- // hashtree builder already prints error messages.
- TEST_AND_RETURN_FALSE(success);
- hash_tree_builder_.reset();
+ if (hash_tree_builder_) {
+ TEST_AND_RETURN_FALSE(hash_tree_builder_->BuildHashTree());
+ TEST_AND_RETURN_FALSE_ERRNO(
+ write_fd->Seek(partition_->hash_tree_offset, SEEK_SET));
+ auto success =
+ hash_tree_builder_->WriteHashTree([write_fd](auto data, auto size) {
+ return utils::WriteAll(write_fd, data, size);
+ });
+ // hashtree builder already prints error messages.
+ TEST_AND_RETURN_FALSE(success);
+ hash_tree_builder_.reset();
+ }
if (partition_->fec_size != 0) {
LOG(INFO) << "Writing verity FEC to " << partition_->target_path;
TEST_AND_RETURN_FALSE(EncodeFEC(read_fd,