mirror of
https://xff.cz/git/u-boot/
synced 2025-09-05 02:32:11 +02:00
disk: part_dos: Allocate at least one block size for mbr
The blk_dread() following the mbr allocation reads one block from the device. This will lead to overflow if block size is greater than the size of legacy_mbr. Fix this by allocating at least one block size. Signed-off-by: Faiz Abbas <faiz_abbas@ti.com> Acked-by: Alexey Brodkin <abrodkin@synopsys.com>
This commit is contained in:
@@ -93,7 +93,8 @@ static int test_block_type(unsigned char *buffer)
|
|||||||
static int part_test_dos(struct blk_desc *dev_desc)
|
static int part_test_dos(struct blk_desc *dev_desc)
|
||||||
{
|
{
|
||||||
#ifndef CONFIG_SPL_BUILD
|
#ifndef CONFIG_SPL_BUILD
|
||||||
ALLOC_CACHE_ALIGN_BUFFER(legacy_mbr, mbr, 1);
|
ALLOC_CACHE_ALIGN_BUFFER(legacy_mbr, mbr,
|
||||||
|
DIV_ROUND_UP(dev_desc->blksz, sizeof(legacy_mbr)));
|
||||||
|
|
||||||
if (blk_dread(dev_desc, 0, 1, (ulong *)mbr) != 1)
|
if (blk_dread(dev_desc, 0, 1, (ulong *)mbr) != 1)
|
||||||
return -1;
|
return -1;
|
||||||
|
Reference in New Issue
Block a user