]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libblkid: fix address sanitizer issues
authorSami Kerola <kerolasa@iki.fi>
Sun, 14 Jul 2019 09:17:32 +0000 (10:17 +0100)
committerSami Kerola <kerolasa@iki.fi>
Sun, 14 Jul 2019 10:53:59 +0000 (11:53 +0100)
With aligned attribute many blkid tests fail with following error.  So
instead of aligning to 4K add padding that makes the struct same size
without causing asan trip over.

    libblkid/src/superblocks/drbd.c:179:6: runtime error: member access
    within misaligned address 0x55913d7e6958 for type 'struct
    meta_data_on_disk_9', which requires 4096 byte alignment

In zfs structure it seems compiler is adding padding, that does not mix well
with be32_to_cpu() and other bit operations.

    libblkid/src/superblocks/zfs.c:109:23: runtime error: load of misaligned
    address 0x7ff6406540e4 for type 'uint32_t' (aka 'unsigned int'), which
    requires 8 byte alignment

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
libblkid/src/superblocks/drbd.c
libblkid/src/superblocks/zfs.c

index 4ebaf1739932aae7352f880db9f5080ef2500e76..c27a8b3843a67fc6b7ea88f26a59b4c4a554392a 100644 (file)
@@ -109,7 +109,7 @@ struct meta_data_on_disk_9 {
        struct peer_dev_md_on_disk_9 peers[DRBD_PEERS_MAX];
        uint64_t history_uuids[HISTORY_UUIDS];
 
-       char padding[0] __attribute__((aligned(4096)));
+       uint8_t padding[2704];
 } __attribute__((packed));
 
 
index 4d4b46d5518867a23541368b24f56df1aab34ea6..0af14fb65aa5f8c3c31042f1c65af80aac9d4672 100644 (file)
@@ -58,7 +58,7 @@ struct nvuint64 {
        uint32_t        nvu_type;
        uint32_t        nvu_elem;
        uint64_t        nvu_value;
-};
+} __attribute__((packed));
 
 struct nvlist {
        uint32_t        nvl_unknown[3];