From 1be6ed3500b24ef7327ab2ea99c23488102a977b Mon Sep 17 00:00:00 2001
From: Vladimir Serbinenko <phco...@gmail.com>
Date: Mon, 10 Jul 2023 13:05:21 +0200
Subject: [PATCH 01/01] loader/bsd: Add missing zeros

kern_end is 64-bit and so we need to add this additional zero.
entry is unused and is explicitly zero in own FreeBSD bootloader

Signed-off-by: Vladimir Serbinenko <phco...@gmail.com>
---
 grub-core/loader/i386/bsd.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c
index 58b976861..ce9d8f4e3 100644
--- a/grub-core/loader/i386/bsd.c
+++ b/grub-core/loader/i386/bsd.c
@@ -896,7 +896,7 @@ grub_freebsd_boot (void)
 
   err = grub_relocator_alloc_chunk_align (relocator, &ch,
 					  0x10000, 0x90000,
-					  (is_64bit ? 3 : 9) * sizeof (grub_uint32_t)
+					  (is_64bit ? 4 : 9) * sizeof (grub_uint32_t)
 					  + sizeof (bi), 4,
 					  GRUB_RELOCATOR_PREFERENCE_NONE,
 					  0);
@@ -956,9 +956,10 @@ grub_freebsd_boot (void)
       state.rsp = stack_target;
       state.rip = (((grub_uint64_t) entry_hi) << 32) | entry;
 
-      stack[0] = entry;
+      stack[0] = 0;
       stack[1] = bi.tags;
       stack[2] = kern_end;
+      stack[3] = 0;
       return grub_relocator64_boot (relocator, state, 0, 0x40000000);
     }
   else
-- 
2.42.0

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

Reply via email to