Don't set data_offset and data_length if data blob is empty.
ZERO operation was failing because we were setting these fields in
delta payload.
Bug: 27858697
Bug: 27156473
Test: apply a minor v4 payload.
Change-Id: I4b6abf3dde052b181a85d417f17123788855b69c
diff --git a/payload_generator/annotated_operation.cc b/payload_generator/annotated_operation.cc
index b7f3434..e28fe85 100644
--- a/payload_generator/annotated_operation.cc
+++ b/payload_generator/annotated_operation.cc
@@ -38,6 +38,11 @@
bool AnnotatedOperation::SetOperationBlob(const brillo::Blob& blob,
BlobFileWriter* blob_file) {
+ if (blob.empty()) {
+ op.clear_data_offset();
+ op.clear_data_length();
+ return true;
+ }
off_t data_offset = blob_file->StoreBlob(blob);
TEST_AND_RETURN_FALSE(data_offset != -1);
op.set_data_offset(data_offset);