summaryrefslogtreecommitdiff
path: root/disk
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2017-10-03 09:38:44 -0400
committerTom Rini <trini@konsulko.com>2017-10-16 09:42:51 -0400
commitb351ccf11ae5616bba183aedb2c433b97123be4f (patch)
tree07571dd727b65a3e5e1dc0b8d3cadbf416b24341 /disk
parentc12d8b7d70c695f1c4fe6fb4f1b3913bdbed8c96 (diff)
downloadu-boot-b351ccf11ae5616bba183aedb2c433b97123be4f.tar.gz
u-boot-b351ccf11ae5616bba183aedb2c433b97123be4f.tar.bz2
u-boot-b351ccf11ae5616bba183aedb2c433b97123be4f.zip
part_efi: In is_gpt_valid() check argument validity before allocation
While this goes somewhat against normal coding style we should ensure that dev_desc is not NULL before we dereference it in allocation of legacy_mbr. Reported-by: Coverity (CID: 167292) Signed-off-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'disk')
-rw-r--r--disk/part_efi.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/disk/part_efi.c b/disk/part_efi.c
index 0abf48733d..782f8be502 100644
--- a/disk/part_efi.c
+++ b/disk/part_efi.c
@@ -923,13 +923,14 @@ static int is_pmbr_valid(legacy_mbr * mbr)
static int is_gpt_valid(struct blk_desc *dev_desc, u64 lba,
gpt_header *pgpt_head, gpt_entry **pgpt_pte)
{
- ALLOC_CACHE_ALIGN_BUFFER(legacy_mbr, mbr, dev_desc->blksz);
-
+ /* Confirm valid arguments prior to allocation. */
if (!dev_desc || !pgpt_head) {
printf("%s: Invalid Argument(s)\n", __func__);
return 0;
}
+ ALLOC_CACHE_ALIGN_BUFFER(legacy_mbr, mbr, dev_desc->blksz);
+
/* Read MBR Header from device */
if (blk_dread(dev_desc, 0, 1, (ulong *)mbr) != 1) {
printf("*** ERROR: Can't read MBR header ***\n");