From: Simon Glass Date: Sat, 23 Oct 2021 23:26:02 +0000 (-0600) Subject: disk: part_dos: Fix a NULL pointer error X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=b7c2cc49ffa50b8a0664460f3899536e07a78158;p=u-boot.git disk: part_dos: Fix a NULL pointer error When ext is NULL we cannot dereference it. Update the code flow to avoid this, so that layout_mbr_partitions() can be used with partition tables that do not include an extended partition. Signed-off-by: Simon Glass --- diff --git a/disk/part_dos.c b/disk/part_dos.c index 9e29aa6583..94fae7166d 100644 --- a/disk/part_dos.c +++ b/disk/part_dos.c @@ -459,10 +459,12 @@ int layout_mbr_partitions(struct disk_partition *p, int count, ext = &p[i]; } - if (i >= 4 && !ext) { - printf("%s: extended partition is needed for more than 4 partitions\n", - __func__); - return -1; + if (count < 4) + return 0; + + if (!ext) { + log_err("extended partition is needed for more than 4 partitions\n"); + return -EINVAL; } /* calculate extended volumes start and size if needed */