bootutil: loader: Add protected TLV size to image size check
The protected TLV section was not included in the size check of
if an image could fit into a slot, which means that it was
possible for file to be deemed as OK for storing but then failing
due to insufficient flash space during the update
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
diff --git a/boot/bootutil/src/loader.c b/boot/bootutil/src/loader.c
index 7a6b020..3f07933 100644
--- a/boot/bootutil/src/loader.c
+++ b/boot/bootutil/src/loader.c
@@ -880,6 +880,16 @@
return false;
}
+#ifdef MCUBOOT_DECOMPRESS_IMAGES
+ if (!MUST_DECOMPRESS(fap, BOOT_CURR_IMG(state), hdr)) {
+#else
+ if (1) {
+#endif
+ if (!boot_u32_safe_add(&size, size, hdr->ih_protect_tlv_size)) {
+ return false;
+ }
+ }
+
if (size >= flash_area_get_size(fap)) {
return false;
}