From: Alexey Brodkin Date: Mon, 29 Jan 2018 19:58:24 +0000 (+0300) Subject: part: Allocate only one legacy_mbr buffer X-Git-Tag: v2018.03-rc2~29 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=8639e34d2c5e12cc2e45c95b1a2e97c22bf6a711;p=u-boot part: Allocate only one legacy_mbr buffer Commit ff98cb90514d ("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 Cc: Rob Clark Cc: Peter Jones Cc: Alexander Graf Cc: Tom Rini --- diff --git a/disk/part_dos.c b/disk/part_dos.c index 046f9bbb3d..9dd086d3db 100644 --- a/disk/part_dos.c +++ b/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;