aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md1
-rw-r--r--patch_read_write_unittest.cc7
-rw-r--r--patch_reader.cc20
-rw-r--r--patch_reader.h2
-rw-r--r--patch_utils.h17
-rw-r--r--patch_writer.cc5
-rw-r--r--patch_writer.h3
-rw-r--r--testdata/patch_fuzzer/empty.zucbin80 -> 76 bytes
-rw-r--r--zucchini_gen.cc18
9 files changed, 1 insertions, 72 deletions
diff --git a/README.md b/README.md
index fe11a0f..19f8cd6 100644
--- a/README.md
+++ b/README.md
@@ -170,7 +170,6 @@ for more info.
Name | Format | Description
--- | --- | ---
header | PatchHeader | The header.
-patch_type | uint32 | Type of this patch, see `enum PatchType`.
elements_count | uint32 | Number of patch units.
elements | PatchElement[elements_count] | List of all patch elements.
diff --git a/patch_read_write_unittest.cc b/patch_read_write_unittest.cc
index 7f84b03..b701df8 100644
--- a/patch_read_write_unittest.cc
+++ b/patch_read_write_unittest.cc
@@ -484,8 +484,6 @@ TEST(EnsemblePatchTest, RawPatch) {
0x98, 0xBA, 0xDC, 0xFE, // new_size
0x44, 0x55, 0x66, 0x77, // new_crc
- 0, 0, 0, 0, // kRawPatch
-
1, 0, 0, 0, // number of element
0x01, 0, 0, 0, // old_offset
@@ -513,14 +511,11 @@ TEST(EnsemblePatchTest, RawPatch) {
EXPECT_EQ(0xFEDCBA98U, header.new_size);
EXPECT_EQ(0x77665544U, header.new_crc);
- EXPECT_EQ(PatchType::kRawPatch, ensemble_patch_reader.patch_type());
-
const std::vector<PatchElementReader>& elements =
ensemble_patch_reader.elements();
EXPECT_EQ(size_t(1), elements.size());
EnsemblePatchWriter ensemble_patch_writer(header);
- ensemble_patch_writer.SetPatchType(PatchType::kRawPatch);
PatchElementWriter patch_element_writer(elements[0].element_match());
patch_element_writer.SetEquivalenceSink({});
patch_element_writer.SetExtraDataSink({});
@@ -538,7 +533,6 @@ TEST(EnsemblePatchTest, CheckFile) {
0xDF, 0x13, 0xE4, 0x10, // old_crc
0x03, 0x00, 0x00, 0x00, // new_size
0xDC, 0xF7, 0x00, 0x40, // new_crc
- 2, 0, 0, 0, // kEnsemblePatch
1, 0, 0, 0, // number of element
@@ -579,7 +573,6 @@ TEST(EnsemblePatchTest, InvalidMagic) {
0x00, 0x11, 0x22, 0x33, // old_crc
0x03, 0x00, 0x00, 0x00, // new_size
0x44, 0x55, 0x66, 0x77, // new_crc
- 0, 0, 0, 0, // kRawPatch
1, 0, 0, 0, // number of element
diff --git a/patch_reader.cc b/patch_reader.cc
index eceb969..970b90c 100644
--- a/patch_reader.cc
+++ b/patch_reader.cc
@@ -272,32 +272,12 @@ bool EnsemblePatchReader::Initialize(BufferSource* source) {
LOG(ERROR) << "Patch contains invalid magic.";
return false;
}
- uint32_t patch_type_int =
- static_cast<uint32_t>(PatchType::kUnrecognisedPatch);
- if (!source->GetValue(&patch_type_int)) {
- LOG(ERROR) << "Impossible to read patch_type from source.";
- return false;
- }
- patch_type_ = static_cast<PatchType>(patch_type_int);
- if (patch_type_ != PatchType::kRawPatch &&
- patch_type_ != PatchType::kSinglePatch &&
- patch_type_ != PatchType::kEnsemblePatch) {
- LOG(ERROR) << "Invalid patch_type encountered.";
- return false;
- }
uint32_t element_count = 0;
if (!source->GetValue(&element_count)) {
LOG(ERROR) << "Impossible to read element_count from source.";
return false;
}
- if (patch_type_ == PatchType::kRawPatch ||
- patch_type_ == PatchType::kSinglePatch) {
- if (element_count != 1) {
- LOG(ERROR) << "Unexpected number of elements in patch.";
- return false; // Only one element expected.
- }
- }
offset_t current_dst_offset = 0;
for (uint32_t i = 0; i < element_count; ++i) {
diff --git a/patch_reader.h b/patch_reader.h
index ef6cd32..ad517f5 100644
--- a/patch_reader.h
+++ b/patch_reader.h
@@ -263,12 +263,10 @@ class EnsemblePatchReader {
bool CheckNewFile(ConstBufferView new_image) const;
const PatchHeader& header() const { return header_; }
- PatchType patch_type() const { return patch_type_; }
const std::vector<PatchElementReader>& elements() const { return elements_; }
private:
PatchHeader header_;
- PatchType patch_type_;
std::vector<PatchElementReader> elements_;
};
diff --git a/patch_utils.h b/patch_utils.h
index 77cf2f3..b904380 100644
--- a/patch_utils.h
+++ b/patch_utils.h
@@ -14,23 +14,6 @@
namespace zucchini {
-// Constants that appear inside a patch.
-enum class PatchType : uint32_t {
- // Patch contains a single raw element, corresponding to an element match that
- // covers the entire images, and with ExecutableType::kExeTypeNoOp.
- kRawPatch = 0,
-
- // Patch contains a single executable element, corresponding to an element
- // match that covers the entire images.
- kSinglePatch = 1,
-
- // Patch contains multiple raw and/or executable elements.
- kEnsemblePatch = 2,
-
- // Used when type is uninitialized.
- kUnrecognisedPatch
-};
-
// A Zucchini 'ensemble' patch is the concatenation of a patch header with a
// list of patch 'elements', each containing data for patching individual
// elements.
diff --git a/patch_writer.cc b/patch_writer.cc
index 4edbc7c..114bcd4 100644
--- a/patch_writer.cc
+++ b/patch_writer.cc
@@ -266,8 +266,7 @@ void EnsemblePatchWriter::AddElement(PatchElementWriter&& patch_element) {
}
size_t EnsemblePatchWriter::SerializedSize() const {
- size_t serialized_size =
- sizeof(PatchHeader) + sizeof(PatchType) + sizeof(uint32_t);
+ size_t serialized_size = sizeof(PatchHeader) + sizeof(uint32_t);
for (const auto& patch_element : elements_) {
serialized_size += patch_element.SerializedSize();
}
@@ -275,11 +274,9 @@ size_t EnsemblePatchWriter::SerializedSize() const {
}
bool EnsemblePatchWriter::SerializeInto(BufferSink* sink) const {
- DCHECK_NE(patch_type_, PatchType::kUnrecognisedPatch);
DCHECK_EQ(current_dst_offset_, header_.new_size);
bool ok =
sink->PutValue<PatchHeader>(header_) &&
- sink->PutValue<PatchType>(patch_type_) &&
sink->PutValue<uint32_t>(base::checked_cast<uint32_t>(elements_.size()));
if (!ok)
return false;
diff --git a/patch_writer.h b/patch_writer.h
index a7c3785..b698dbc 100644
--- a/patch_writer.h
+++ b/patch_writer.h
@@ -239,8 +239,6 @@ class EnsemblePatchWriter {
EnsemblePatchWriter(ConstBufferView old_image, ConstBufferView new_image);
~EnsemblePatchWriter();
- void SetPatchType(PatchType patch_type) { patch_type_ = patch_type; }
-
// Reserves space for |count| patch elements.
void ReserveElements(size_t count) { elements_.reserve(count); }
@@ -264,7 +262,6 @@ class EnsemblePatchWriter {
private:
PatchHeader header_;
- PatchType patch_type_ = PatchType::kUnrecognisedPatch;
std::vector<PatchElementWriter> elements_;
offset_t current_dst_offset_ = 0;
diff --git a/testdata/patch_fuzzer/empty.zuc b/testdata/patch_fuzzer/empty.zuc
index 34b2d66..64eacf5 100644
--- a/testdata/patch_fuzzer/empty.zuc
+++ b/testdata/patch_fuzzer/empty.zuc
Binary files differ
diff --git a/zucchini_gen.cc b/zucchini_gen.cc
index de0e7d9..af7c7dd 100644
--- a/zucchini_gen.cc
+++ b/zucchini_gen.cc
@@ -311,18 +311,6 @@ status::Code GenerateEnsemble(ConstBufferView old_image,
return GenerateRaw(old_image, new_image, patch_writer);
}
- PatchType patch_type = PatchType::kRawPatch;
- if (num_elements == 1 && matches[0].old_element.size == old_image.size() &&
- matches[0].new_element.size == new_image.size()) {
- // If |old_image| matches |new_image| entirely then we have single patch.
- LOG(INFO) << "Old and new files are executables, "
- << "generating single-file patch.";
- patch_type = PatchType::kSinglePatch;
- } else {
- LOG(INFO) << "Generating ensemble patch.";
- patch_type = PatchType::kEnsemblePatch;
- }
-
// "Gaps" are |new_image| bytes not covered by new_elements in |matches|.
// These are treated as raw data, and patched against the entire |old_image|.
@@ -359,9 +347,6 @@ status::Code GenerateEnsemble(ConstBufferView old_image,
}
}
- if (covered_new_bytes == 0)
- patch_type = PatchType::kRawPatch;
-
if (covered_new_bytes < new_image.size()) {
// Process all "gaps", which are patched against the entire "old" image. To
// compute equivalence maps, "gaps" share a common suffix array
@@ -400,7 +385,6 @@ status::Code GenerateEnsemble(ConstBufferView old_image,
}
}
- patch_writer->SetPatchType(patch_type);
// Write all PatchElementWriter sorted by "new" offset.
for (auto& new_lo_and_patch_element : patch_element_map)
patch_writer->AddElement(std::move(new_lo_and_patch_element.second));
@@ -411,8 +395,6 @@ status::Code GenerateEnsemble(ConstBufferView old_image,
status::Code GenerateRaw(ConstBufferView old_image,
ConstBufferView new_image,
EnsemblePatchWriter* patch_writer) {
- patch_writer->SetPatchType(PatchType::kRawPatch);
-
ImageIndex old_image_index(old_image);
EncodedView old_view(old_image_index);
std::vector<offset_t> old_sa =