part: Allocate only one legacy_mbr buffer

Commit ff98cb9051 ("part: extract MBR signature from partitions")
blindly switched allocated by ALLOC_CACHE_ALIGN_BUFFER buffer type from
"unsigned char" to "legacy_mbr" which caused allocation of size =
(typeof(legacy_mbr) * dev_desc->blksize) instead of just space enough
for "legacy_mbr" structure.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Peter Jones <pjones@redhat.com>
Cc: Alexander Graf <agraf@suse.de>
Cc: Tom Rini <trini@konsulko.com>
master
Alexey Brodkin 6 years ago committed by Tom Rini
parent 6808ef9ac2
commit 8639e34d2c
  1. 2
      disk/part_dos.c

@ -90,7 +90,7 @@ static int test_block_type(unsigned char *buffer)
static int part_test_dos(struct blk_desc *dev_desc)
{
#ifndef CONFIG_SPL_BUILD
ALLOC_CACHE_ALIGN_BUFFER(legacy_mbr, mbr, dev_desc->blksz);
ALLOC_CACHE_ALIGN_BUFFER(legacy_mbr, mbr, 1);
if (blk_dread(dev_desc, 0, 1, (ulong *)mbr) != 1)
return -1;

Loading…
Cancel
Save