summaryrefslogtreecommitdiff
path: root/chip/g/upgrade_fw.c
diff options
context:
space:
mode:
Diffstat (limited to 'chip/g/upgrade_fw.c')
-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;