Boot: Pass image header to LOAD_IMAGE_DATA macro
Pass the image header pointer as an argument to the LOAD_IMAGE_DATA
macro instead of assuming it exists in the given scope with the
name "hdr".
Change-Id: I169d18427ba908f5b169ff276147dd9098afd9f6
Signed-off-by: David Vincze <david.vincze@arm.com>
diff --git a/bl2/ext/mcuboot/bootutil/src/bootutil_priv.h b/bl2/ext/mcuboot/bootutil/src/bootutil_priv.h
index 2f37047..20d61b7 100644
--- a/bl2/ext/mcuboot/bootutil/src/bootutil_priv.h
+++ b/bl2/ext/mcuboot/bootutil/src/bootutil_priv.h
@@ -335,10 +335,11 @@
#endif /* !defined(MCUBOOT_USE_FLASH_AREA_GET_SECTORS) */
#ifdef MCUBOOT_RAM_LOADING
-#define LOAD_IMAGE_DATA(fap, start, output, size)\
- (memcpy((output),(void*)(hdr->ih_load_addr + (start)), (size)) != (output))
+#define LOAD_IMAGE_DATA(hdr, fap, start, output, size) \
+ (memcpy((output),(void*)((hdr)->ih_load_addr + (start)), \
+ (size)) != (output))
#else
-#define LOAD_IMAGE_DATA(fap, start, output, size)\
+#define LOAD_IMAGE_DATA(hdr, fap, start, output, size) \
(flash_area_read((fap), (start), (output), (size)))
#endif /* MCUBOOT_RAM_LOADING */
diff --git a/bl2/ext/mcuboot/bootutil/src/image_validate.c b/bl2/ext/mcuboot/bootutil/src/image_validate.c
index 53ac659..841f183 100644
--- a/bl2/ext/mcuboot/bootutil/src/image_validate.c
+++ b/bl2/ext/mcuboot/bootutil/src/image_validate.c
@@ -225,7 +225,7 @@
* the security counter TLV.
*/
while (off < end) {
- rc = LOAD_IMAGE_DATA(fap, off, &tlv, sizeof(tlv));
+ rc = LOAD_IMAGE_DATA(hdr, fap, off, &tlv, sizeof(tlv));
if (rc != 0) {
return BOOT_EFLASH;
}
@@ -237,7 +237,7 @@
break;
}
- rc = LOAD_IMAGE_DATA(fap, off + sizeof(tlv),
+ rc = LOAD_IMAGE_DATA(hdr, fap, off + sizeof(tlv),
img_security_cnt, tlv.it_len);
if (rc != 0) {
return BOOT_EFLASH;
@@ -314,7 +314,7 @@
* and are able to do.
*/
while (off < end) {
- rc = LOAD_IMAGE_DATA(fap, off, &tlv, sizeof(tlv));
+ rc = LOAD_IMAGE_DATA(hdr, fap, off, &tlv, sizeof(tlv));
if (rc) {
return rc;
}
@@ -327,7 +327,8 @@
if (tlv.it_len != sizeof(hash)) {
return -1;
}
- rc = LOAD_IMAGE_DATA(fap, off + sizeof(tlv), buf, sizeof(hash));
+ rc = LOAD_IMAGE_DATA(hdr, fap, off + sizeof(tlv),
+ buf, sizeof(hash));
if (rc) {
return rc;
}
@@ -345,7 +346,7 @@
if (tlv.it_len > 32) {
return -1;
}
- rc = LOAD_IMAGE_DATA(fap, off + sizeof(tlv), buf, tlv.it_len);
+ rc = LOAD_IMAGE_DATA(hdr, fap, off + sizeof(tlv), buf, tlv.it_len);
if (rc) {
return rc;
}
@@ -362,7 +363,8 @@
if (tlv.it_len > sizeof(key_buf)) {
return -1;
}
- rc = LOAD_IMAGE_DATA(fap, off + sizeof(tlv), key_buf, tlv.it_len);
+ rc = LOAD_IMAGE_DATA(hdr, fap, off + sizeof(tlv),
+ key_buf, tlv.it_len);
if (rc) {
return rc;
}
@@ -378,7 +380,8 @@
if (!EXPECTED_SIG_LEN(tlv.it_len) || tlv.it_len > sizeof(buf)) {
return -1;
}
- rc = LOAD_IMAGE_DATA(fap, off + sizeof(tlv), buf, tlv.it_len);
+ rc = LOAD_IMAGE_DATA(hdr, fap, off + sizeof(tlv),
+ buf, tlv.it_len);
if (rc) {
return -1;
}
@@ -400,7 +403,7 @@
return -1;
}
- rc = LOAD_IMAGE_DATA(fap, off + sizeof(tlv),
+ rc = LOAD_IMAGE_DATA(hdr, fap, off + sizeof(tlv),
&img_security_cnt, tlv.it_len);
if (rc) {
return rc;
diff --git a/bl2/ext/mcuboot/bootutil/src/loader.c b/bl2/ext/mcuboot/bootutil/src/loader.c
index 9f47591..d5514cd 100644
--- a/bl2/ext/mcuboot/bootutil/src/loader.c
+++ b/bl2/ext/mcuboot/bootutil/src/loader.c
@@ -177,7 +177,7 @@
off_ = BOOT_TLV_OFF(hdr);
- if (LOAD_IMAGE_DATA(fap, off_, &info, sizeof(info))) {
+ if (LOAD_IMAGE_DATA(hdr, fap, off_, &info, sizeof(info))) {
return BOOT_EFLASH;
}
diff --git a/bl2/src/boot_record.c b/bl2/src/boot_record.c
index f7b2539..ba98eba 100644
--- a/bl2/src/boot_record.c
+++ b/bl2/src/boot_record.c
@@ -117,7 +117,7 @@
* - public key hash: Signer ID
*/
for (; offset < tlv_end; offset += sizeof(tlv_entry) + tlv_entry.it_len) {
- res = LOAD_IMAGE_DATA(fap, offset, &tlv_entry, sizeof(tlv_entry));
+ res = LOAD_IMAGE_DATA(hdr, fap, offset, &tlv_entry, sizeof(tlv_entry));
if (res) {
return BOOT_STATUS_ERROR;
}
@@ -128,7 +128,7 @@
return BOOT_STATUS_ERROR;
}
- res = LOAD_IMAGE_DATA(fap, offset + sizeof(tlv_entry),
+ res = LOAD_IMAGE_DATA(hdr, fap, offset + sizeof(tlv_entry),
buf, tlv_entry.it_len);
if (res) {
return BOOT_STATUS_ERROR;
@@ -162,7 +162,7 @@
return BOOT_STATUS_ERROR;
}
- res = LOAD_IMAGE_DATA(fap, offset + sizeof(tlv_entry),
+ res = LOAD_IMAGE_DATA(hdr, fap, offset + sizeof(tlv_entry),
buf, tlv_entry.it_len);
if (res) {
return BOOT_STATUS_ERROR;
@@ -173,7 +173,7 @@
if (tlv_entry.it_len > sizeof(key_buf)) {
return BOOT_STATUS_ERROR;
}
- res = LOAD_IMAGE_DATA(fap, offset + sizeof(tlv_entry),
+ res = LOAD_IMAGE_DATA(hdr, fap, offset + sizeof(tlv_entry),
key_buf, tlv_entry.it_len);
if (res) {
return BOOT_STATUS_ERROR;
@@ -411,7 +411,7 @@
* and image hash TLVs.
*/
while (offset < tlv_end) {
- res = LOAD_IMAGE_DATA(fap, offset, &tlv_entry, sizeof(tlv_entry));
+ res = LOAD_IMAGE_DATA(hdr, fap, offset, &tlv_entry, sizeof(tlv_entry));
if (res) {
return BOOT_STATUS_ERROR;
}
@@ -420,7 +420,7 @@
if (tlv_entry.it_len > sizeof(buf)) {
return BOOT_STATUS_ERROR;
}
- res = LOAD_IMAGE_DATA(fap, offset + sizeof(tlv_entry),
+ res = LOAD_IMAGE_DATA(hdr, fap, offset + sizeof(tlv_entry),
buf, tlv_entry.it_len);
if (res) {
return BOOT_STATUS_ERROR;
@@ -434,7 +434,7 @@
if (tlv_entry.it_len > sizeof(image_hash)) {
return BOOT_STATUS_ERROR;
}
- res = LOAD_IMAGE_DATA(fap, offset + sizeof(tlv_entry),
+ res = LOAD_IMAGE_DATA(hdr, fap, offset + sizeof(tlv_entry),
image_hash, tlv_entry.it_len);
if (res) {
return BOOT_STATUS_ERROR;