[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] loader/i386/linux.c: Fix cleanup if kernel doesn't support 64-bi
From: |
Sergii Dmytruk |
Subject: |
[PATCH] loader/i386/linux.c: Fix cleanup if kernel doesn't support 64-bit addressing |
Date: |
Sat, 2 Nov 2024 00:54:40 +0200 |
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>
---
grub-core/loader/i386/linux.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c
index 977757f2c..26ed25427 100644
--- a/grub-core/loader/i386/linux.c
+++ b/grub-core/loader/i386/linux.c
@@ -838,9 +838,11 @@ grub_cmd_linux (grub_command_t cmd __attribute__
((unused)),
#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)
--
2.47.0
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH] loader/i386/linux.c: Fix cleanup if kernel doesn't support 64-bit addressing,
Sergii Dmytruk <=