summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--payload_generator/delta_diff_utils.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/payload_generator/delta_diff_utils.cc b/payload_generator/delta_diff_utils.cc
index d3629ff50..f93fb558b 100644
--- a/payload_generator/delta_diff_utils.cc
+++ b/payload_generator/delta_diff_utils.cc
@@ -937,6 +937,15 @@ bool ReadExtentsToDiff(const string& old_part,
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;