update_engine: Remove problematic deflate caches. am: cf50e9dd45 am: b7218430f2
am: dc97274a3c
Change-Id: I0c27be49bb2da00381b6306a5e74fd98a7dfcfc2
diff --git a/payload_generator/delta_diff_utils.cc b/payload_generator/delta_diff_utils.cc
index d3629ff..f93fb55 100644
--- a/payload_generator/delta_diff_utils.cc
+++ b/payload_generator/delta_diff_utils.cc
@@ -937,6 +937,15 @@
puffin::RemoveEqualBitExtents(
old_data, new_data, &src_deflates, &dst_deflates);
+ // See crbug.com/915559.
+ if (version.minor <= kPuffdiffMinorPayloadVersion) {
+ TEST_AND_RETURN_FALSE(puffin::RemoveDeflatesWithBadDistanceCaches(
+ old_data, &src_deflates));
+
+ TEST_AND_RETURN_FALSE(puffin::RemoveDeflatesWithBadDistanceCaches(
+ new_data, &dst_deflates));
+ }
+
// Only Puffdiff if both files have at least one deflate left.
if (!src_deflates.empty() && !dst_deflates.empty()) {
brillo::Blob puffdiff_delta;