arm-trusted-firmware/drivers/partition
Chris Webb 21a77e0892 fix(guid-partition): fix unaligned access in load_mbr_header()
load_mbr_header() casts an unaligned pointer to (mbr_entry_t *) then
dereferences struct members with non-trivial alignment requirements.

This causes a bl2 with BOOT_DEVICE=emmc to hang when compiled with clang
18.1.5, although it works when compiled with gcc 14.1.0. Presumably gcc's
-mstrict-align papers over the undefined behaviour whereas clang's doesn't.

Replace the unaligned cast with a safe memcpy() into an mbr_entry_t.

Signed-off-by: Chris Webb <chris@arachsys.com>
Change-Id: Iefd4dac7e390ddf369b8dacdbaf14e599118f91d
2024-07-04 12:33:15 +01:00
..
gpt.c fix(partition): add missing curly braces 2022-12-07 14:16:48 +01:00
partition.c fix(guid-partition): fix unaligned access in load_mbr_header() 2024-07-04 12:33:15 +01:00