Add utility function to find offset/len of TLVs
Add a new function, boot_find_tlv_offs, that loads the beginning and end
offset of the TLV region.
Signed-off-by: Fabio Utzig <utzig@apache.org>
diff --git a/boot/bootutil/src/image_validate.c b/boot/bootutil/src/image_validate.c
index 143187b..9983d4f 100644
--- a/boot/bootutil/src/image_validate.c
+++ b/boot/bootutil/src/image_validate.c
@@ -211,7 +211,6 @@
uint32_t off;
uint32_t end;
int sha256_valid = 0;
- struct image_tlv_info info;
#ifdef EXPECTED_SIG_TLV
int valid_signature = 0;
int key_id = -1;
@@ -231,18 +230,10 @@
memcpy(out_hash, hash, 32);
}
- /* The TLVs come after the image. */
- off = BOOT_TLV_OFF(hdr);
-
- rc = flash_area_read(fap, off, &info, sizeof(info));
+ rc = boot_find_tlv_offs(hdr, fap, &off, &end);
if (rc) {
return rc;
}
- if (info.it_magic != IMAGE_TLV_INFO_MAGIC) {
- return -1;
- }
- end = off + info.it_tlv_tot;
- off += sizeof(info);
/*
* Traverse through all of the TLVs, performing any checks we know