fwu_metadata: make sure structures are packed
authorRui Miguel Silva <rui.silva@linaro.org>
Mon, 12 Jun 2023 08:09:15 +0000 (09:09 +0100)
committerTom Rini <trini@konsulko.com>
Mon, 19 Jun 2023 18:34:16 +0000 (14:34 -0400)
The fwu metadata in the metadata partitions
should/are packed to guarantee that the info is
correct in all platforms. Also the size of them
are used to calculate the crc32 and that is important
to get it right.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
include/fwu_mdata.h

index 8fda4f4..56189e2 100644 (file)
@@ -6,6 +6,7 @@
 #if !defined _FWU_MDATA_H_
 #define _FWU_MDATA_H_
 
+#include <linux/compiler_attributes.h>
 #include <efi.h>
 
 /**
@@ -22,7 +23,7 @@ struct fwu_image_bank_info {
        efi_guid_t  image_uuid;
        uint32_t accepted;
        uint32_t reserved;
-};
+} __packed;
 
 /**
  * struct fwu_image_entry - information for a particular type of image
@@ -38,7 +39,7 @@ struct fwu_image_entry {
        efi_guid_t image_type_uuid;
        efi_guid_t location_uuid;
        struct fwu_image_bank_info img_bank_info[CONFIG_FWU_NUM_BANKS];
-};
+} __packed;
 
 /**
  * struct fwu_mdata - FWU metadata structure for multi-bank updates
@@ -62,6 +63,6 @@ struct fwu_mdata {
        uint32_t previous_active_index;
 
        struct fwu_image_entry img_entry[CONFIG_FWU_NUM_IMAGES_PER_BANK];
-};
+} __packed;
 
 #endif /* _FWU_MDATA_H_ */