efi_loader: LoadImage w/o SourceBuffer and DevicePath
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Tue, 11 Jun 2019 16:52:33 +0000 (18:52 +0200)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Fri, 14 Jun 2019 17:18:39 +0000 (19:18 +0200)
If both SourceBuffer and DevicePath are NULL, LoadImage() must return
EFI_INVALID_PARAMETER.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
lib/efi_loader/efi_boottime.c

index fa01bbda700b0da243e07c3a0d13d7ec45fe1be3..7bb0fc2e5211e98331c9abe7f6501d1bad6b31a6 100644 (file)
@@ -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;
        }