Fix applying REPLACE_XZ operation when verifying payload.
xz-embedded needs to initialize crc32 table.
Also changed the exit code to 1 if ApplyPayload fail.
BUG=none
TEST=brillo_update_payload verify
Change-Id: I1717b7463f7118bb94da2b780e0106995451b68f
(cherry picked from commit 8adc1ad36359b2e5b0a0d599409589d625064574)
Reviewed-on: https://chromium-review.googlesource.com/638554
Commit-Ready: Amin Hassani <ahassani@chromium.org>
Tested-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Sen Jiang <senj@chromium.org>
diff --git a/payload_generator/generate_delta_main.cc b/payload_generator/generate_delta_main.cc
index d93313f..7524cc9 100644
--- a/payload_generator/generate_delta_main.cc
+++ b/payload_generator/generate_delta_main.cc
@@ -19,6 +19,7 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
+#include <xz.h>
#include <string>
#include <vector>
@@ -235,6 +236,7 @@
int fd = open(payload_file.c_str(), O_RDONLY, 0);
CHECK_GE(fd, 0);
ScopedFdCloser fd_closer(&fd);
+ xz_crc32_init();
for (off_t offset = 0;; offset += buf.size()) {
ssize_t bytes_read;
CHECK(utils::PReadAll(fd, buf.data(), buf.size(), offset, &bytes_read));
@@ -501,8 +503,7 @@
}
if (!FLAGS_in_file.empty()) {
- ApplyPayload(FLAGS_in_file, payload_config);
- return 0;
+ return ApplyPayload(FLAGS_in_file, payload_config) ? 0 : 1;
}
if (!FLAGS_new_postinstall_config_file.empty()) {