x86/efistub: Avoid returning EFI_SUCCESS on error

The fail label is only used in a situation where the previous EFI API
call succeeded, and so status will be set to EFI_SUCCESS. Fix this, by
dropping the goto entirely, and call efi_exit() with the correct error
code.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
This commit is contained in:
Ard Biesheuvel 2024-07-04 10:59:23 +02:00
parent 71e49eccdc
commit fb318ca0a5

View file

@ -566,16 +566,13 @@ efi_status_t __efiapi efi_pe_entry(efi_handle_t handle,
/* Convert unicode cmdline to ascii */ /* Convert unicode cmdline to ascii */
cmdline_ptr = efi_convert_cmdline(image, &options_size); cmdline_ptr = efi_convert_cmdline(image, &options_size);
if (!cmdline_ptr) if (!cmdline_ptr)
goto fail; efi_exit(handle, EFI_OUT_OF_RESOURCES);
efi_set_u64_split((unsigned long)cmdline_ptr, &hdr->cmd_line_ptr, efi_set_u64_split((unsigned long)cmdline_ptr, &hdr->cmd_line_ptr,
&boot_params.ext_cmd_line_ptr); &boot_params.ext_cmd_line_ptr);
efi_stub_entry(handle, sys_table_arg, &boot_params); efi_stub_entry(handle, sys_table_arg, &boot_params);
/* not reached */ /* not reached */
fail:
efi_exit(handle, status);
} }
static void add_e820ext(struct boot_params *params, static void add_e820ext(struct boot_params *params,