From: Heinrich Schuchardt <xypron.glpk@gmx.de>
Date: Tue, 11 Jun 2019 16:52:33 +0000 (+0200)
Subject: efi_loader: LoadImage w/o SourceBuffer and DevicePath
X-Git-Tag: v2025.01-rc5-pxa1908~2927^2~12
X-Git-Url: http://git.dujemihanovic.xyz/img/static/git-logo.png?a=commitdiff_plain;h=e4afcb2876eeeddd2376c8b07808276b75862498;p=u-boot.git

efi_loader: LoadImage w/o SourceBuffer and DevicePath

If both SourceBuffer and DevicePath are NULL, LoadImage() must return
EFI_INVALID_PARAMETER.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---

diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index fa01bbda70..7bb0fc2e52 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -1856,17 +1856,10 @@ efi_status_t EFIAPI efi_load_image(bool boot_policy,
 	EFI_ENTRY("%d, %p, %pD, %p, %zd, %p", boot_policy, parent_image,
 		  file_path, source_buffer, source_size, image_handle);
 
-	if (!image_handle || !efi_search_obj(parent_image)) {
-		ret = EFI_INVALID_PARAMETER;
-		goto error;
-	}
-
-	if (!source_buffer && !file_path) {
-		ret = EFI_NOT_FOUND;
-		goto error;
-	}
-	/* The parent image handle must refer to a loaded image */
-	if (!parent_image->type) {
+	if (!image_handle || (!source_buffer && !file_path) ||
+	    !efi_search_obj(parent_image) ||
+	    /* The parent image handle must refer to a loaded image */
+	    !parent_image->type) {
 		ret = EFI_INVALID_PARAMETER;
 		goto error;
 	}