ANDROID: dm verity fec: pack the fec_header structure
authorJeremy Compostella <jeremy.compostella@intel.com>
Tue, 10 May 2016 11:10:20 +0000 (13:10 +0200)
committerAmit Pundir <amit.pundir@linaro.org>
Thu, 18 Aug 2016 13:26:03 +0000 (18:56 +0530)
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>
drivers/md/dm-android-verity.h

index 782e1c815c671a456e042a44b53dfe661cb4f6b2..f43b02fbb4759c9bdca3324d803c439d01d385a9 100644 (file)
@@ -72,9 +72,6 @@
  * 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;
@@ -83,7 +80,7 @@ struct fec_header {
        __le32 fec_size;
        __le64 inp_size;
        u8 hash[SHA256_DIGEST_SIZE];
-};
+} __attribute__((packed));
 
 struct android_metadata_header {
        __le32 magic_number;