Snap for 11828632 from 650cda8a5f3dc62843522d35893b6450af7269c9 to 24Q3-release

Change-Id: If8fd48e1b8930ae5bbf4e8e84dee007d14ce5a51
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);