mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-26 14:55:16 +00:00
Merge "fix(guid-partition): fix unaligned access in load_mbr_header()" into integration
This commit is contained in:
commit
4b9be5abfa
1 changed files with 5 additions and 5 deletions
|
@ -50,7 +50,7 @@ static int load_mbr_header(uintptr_t image_handle, mbr_entry_t *mbr_entry)
|
||||||
{
|
{
|
||||||
size_t bytes_read;
|
size_t bytes_read;
|
||||||
int result;
|
int result;
|
||||||
mbr_entry_t *tmp;
|
mbr_entry_t tmp;
|
||||||
|
|
||||||
assert(mbr_entry != NULL);
|
assert(mbr_entry != NULL);
|
||||||
/* MBR partition table is in LBA0. */
|
/* MBR partition table is in LBA0. */
|
||||||
|
@ -73,19 +73,19 @@ static int load_mbr_header(uintptr_t image_handle, mbr_entry_t *mbr_entry)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp = (mbr_entry_t *)(&mbr_sector[MBR_PRIMARY_ENTRY_OFFSET]);
|
memcpy(&tmp, mbr_sector + MBR_PRIMARY_ENTRY_OFFSET, sizeof(tmp));
|
||||||
|
|
||||||
if (tmp->first_lba != 1) {
|
if (tmp.first_lba != 1) {
|
||||||
VERBOSE("MBR header may have an invalid first LBA\n");
|
VERBOSE("MBR header may have an invalid first LBA\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((tmp->sector_nums == 0) || (tmp->sector_nums == UINT32_MAX)) {
|
if ((tmp.sector_nums == 0) || (tmp.sector_nums == UINT32_MAX)) {
|
||||||
VERBOSE("MBR header entry has an invalid number of sectors\n");
|
VERBOSE("MBR header entry has an invalid number of sectors\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(mbr_entry, tmp, sizeof(mbr_entry_t));
|
memcpy(mbr_entry, &tmp, sizeof(mbr_entry_t));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue