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.dmyt...@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


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to