summaryrefslogtreecommitdiff
path: root/scripts/update_payload/checker.py
diff options
context:
space:
mode:
authorAllie Wood <alliewood@chromium.org>2015-04-24 10:20:27 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-04-27 23:29:30 +0000
commitb065e13f600d0efc7f089a382611ffd93a8afce9 (patch)
tree07f1240c5c2fd9d08b430114a8d41de37d5d70f7 /scripts/update_payload/checker.py
parent12f59aa1cffec0ee531daccc6de7469870f86302 (diff)
paycheck: Check MOVE operations for start block 0.
paycheck now blocks payloads that read or write to block 0 in a MOVE operation. It must do this because old versions of PReadAll and PWriteAll could not seek to 0. BUG=chromium:480751 TEST=unit tests, test_paycheck.sh Change-Id: I042de444c92896496795af235e9386dca6c77be2 Reviewed-on: https://chromium-review.googlesource.com/267088 Reviewed-by: Gilad Arnold <garnold@chromium.org> Reviewed-by: Alex Deymo <deymo@chromium.org> Commit-Queue: Allie Wood <alliewood@chromium.org> Trybot-Ready: Allie Wood <alliewood@chromium.org> Tested-by: Allie Wood <alliewood@chromium.org>
Diffstat (limited to 'scripts/update_payload/checker.py')
-rw-r--r--scripts/update_payload/checker.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/scripts/update_payload/checker.py b/scripts/update_payload/checker.py
index 48b18e66..f2aa7bbf 100644
--- a/scripts/update_payload/checker.py
+++ b/scripts/update_payload/checker.py
@@ -778,6 +778,14 @@ class PayloadChecker(object):
dst_idx = dst_extent.start_block
dst_num = dst_extent.num_blocks
+ # Check: start block is not 0. See crbug/480751; there are still versions
+ # of update_engine which fail when seeking to 0 in PReadAll and PWriteAll,
+ # so we need to fail payloads that try to MOVE to/from block 0.
+ if src_idx == 0 or dst_idx == 0:
+ raise error.PayloadError(
+ '%s: MOVE operation cannot have extent with start block 0' %
+ op_name)
+
if self.check_move_same_src_dst_block and src_idx == dst_idx:
raise error.PayloadError(
'%s: src/dst block number %d is the same (%d).' %