Simply returning from grub_cmd_linux() doesn't free "file" resource nor
calls grub_dl_ref(my_mod). Jump to "fail" label for proper cleanup like
other error checks do.
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
#ifdef GRUB_MACHINE_EFI
#ifdef __x86_64__
if (grub_le_to_cpu16 (linux_params.version) < 0x0208 &&
- ((grub_addr_t) grub_efi_system_table >> 32) != 0)
- return grub_error(GRUB_ERR_BAD_OS,
- "kernel does not support 64-bit addressing");
+ ((grub_addr_t) grub_efi_system_table >> 32) != 0) {
+ grub_errno = grub_error (GRUB_ERR_BAD_OS, "kernel does not support 64-bit addressing");
+ goto fail;
+ }
#endif
if (grub_le_to_cpu16 (linux_params.version) >= 0x0208)