The fec_header structure is generated build time and stored on disk.
The fec_header might be build on a 64 bits machine while it is read
per a 32 bits device or the other way around. In such situations, the
fec_header fields are not aligned as expected by the device and it
fails to read the fec_header structure.
This patch makes the fec_header packed.
Change-Id: Idb84453e70cc11abd5ef3a0adfbb16f8b5feaf06
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
* if fec is not present
* <data_blocks> <verity_tree> <verity_metdata_32K>
*/
-/* TODO: rearrange structure to reduce memory holes
- * depends on userspace change.
- */
struct fec_header {
__le32 magic;
__le32 version;
__le32 fec_size;
__le64 inp_size;
u8 hash[SHA256_DIGEST_SIZE];
-};
+} __attribute__((packed));
struct android_metadata_header {
__le32 magic_number;