grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 18/24] loader/i386/linux.c: Fix cleanup if kernel doesn't support


From: Sergii Dmytruk
Subject: [PATCH 18/24] loader/i386/linux.c: Fix cleanup if kernel doesn't support 64-bit addressing
Date: Mon, 26 Aug 2024 15:44:28 +0300

Simply returning didn't free file resource nor called
`grub_dl_ref(my_mod)`.  Jump to `fail` label instead.

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 f482fa4af..70d42ec8d 100644
--- a/grub-core/loader/i386/linux.c
+++ b/grub-core/loader/i386/linux.c
@@ -1128,9 +1128,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.46.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]