summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Roth <martinroth@chromium.org>2016-10-26 12:30:08 -0700
committerchrome-bot <chrome-bot@chromium.org>2016-11-16 19:04:33 -0800
commit0e0a9589ec81575ae377431e5f76b68780e0d9eb (patch)
tree7bc5ef5bb3103a90b2d1e26584b370f1fe4b0106
parentd961991d6793e6875541fd26e9f715d5a9a7da4e (diff)
downloadchrome-ec-0e0a9589ec81575ae377431e5f76b68780e0d9eb.tar.gz
upgrade_fw.c: Initialize variable before using it.
block offset was being used in a printf before it was being initialized. Initialize it earlier to fix the problem. This does not change the size of any ec.*.flat file. BRANCH=none BUG=none TEST=build succeeds under GCC 4.9.2, 5.3 and 6.2 Change-Id: I3233ca3b10d35a6f61036c2e30224dc3747618fd Signed-off-by: Martin Roth <martinroth@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/403501 Reviewed-by: Shawn N <shawnn@chromium.org>
-rw-r--r--chip/g/upgrade_fw.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/chip/g/upgrade_fw.c b/chip/g/upgrade_fw.c
index 19e89f6507..0eed2c51a4 100644
--- a/chip/g/upgrade_fw.c
+++ b/chip/g/upgrade_fw.c
@@ -228,6 +228,9 @@ void fw_upgrade_command_handler(void *body,
DCRYPTO_SHA1_hash((uint8_t *)&cmd_body->block_base,
body_size + sizeof(cmd_body->block_base),
sha1_digest);
+
+ block_offset = be32toh(cmd_body->block_base);
+
if (memcmp(sha1_digest, &cmd_body->block_digest,
sizeof(cmd_body->block_digest))) {
*error_code = UPGRADE_DATA_ERROR;
@@ -239,7 +242,6 @@ void fw_upgrade_command_handler(void *body,
}
/* Check if the block will fit into the valid area. */
- block_offset = be32toh(cmd_body->block_base);
*error_code = check_update_chunk(block_offset, body_size);
if (*error_code)
return;