diff mbox series

[U-Boot] part_efi: In is_gpt_valid() check argument validity before allocation

Message ID 1507037924-8939-1-git-send-email-trini@konsulko.com
State Accepted
Commit b351ccf11ae5616bba183aedb2c433b97123be4f
Delegated to: Tom Rini
Headers show
Series [U-Boot] part_efi: In is_gpt_valid() check argument validity before allocation | expand

Commit Message

Tom Rini Oct. 3, 2017, 1:38 p.m. UTC
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>
---
 disk/part_efi.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Tom Rini Oct. 17, 2017, 12:46 a.m. UTC | #1
On Tue, Oct 03, 2017 at 09:38:44AM -0400, Tom Rini wrote:

> 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>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/disk/part_efi.c b/disk/part_efi.c
index 208bb14ee88e..1b526c2a79b9 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");