URL:
  <http://savannah.gnu.org/bugs/?41655>

                 Summary: booting problem with x86_64 specific image with GRUB
(apparently in relocator.c)
                 Project: GNU GRUB
            Submitted by: dejw
            Submitted on: Fri 21 Feb 2014 01:59:40 PM CET
                Category: Booting
                Severity: Major
                Priority: 5 - Normal
              Item Group: Software Error
                  Status: None
                 Privacy: Public
             Assigned to: None
         Originator Name: 
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
                 Release: 
                 Release: Git master
         Reproducibility: Every Time
         Planned Release: None

    _______________________________________________________

Details:

Hello,

I have a problem with loading x86_64 image (multiboot2) using GRUB. 

GRUB is started directly from EFI shell.

I've monitored that problem appears in git-core/lib/relocator.c,
function malloc_in_range()
in following part:
...
#if GRUB_RELOCATOR_HAVE_LEFTOVERS
                  case CHUNK_TYPE_LEFTOVER:
                    {
                      unsigned offstart = alloc_start
                        % GRUB_RELOCATOR_FIRMWARE_REQUESTS_QUANT;
                      unsigned offend = alloc_end
                        % GRUB_RELOCATOR_FIRMWARE_REQUESTS_QUANT;
                      struct grub_relocator_fw_leftover *lo
                        = events[last_lo].leftover;
                      lo->freebytes[offstart / 8]
                        &= ((1 << (8 - (start % 8))) - 1);
                      grub_memset (lo->freebytes + (offstart + 7) / 8, 0,
                                   offend / 8 - (offstart + 7) / 8);
                      lo->freebytes[offend / 8] &= ~((1 << (offend % 8)) - 1);
...

Problem on my side appear when I initiate boot of one of my images.
Then I get here values:
alloc_start:0x158ff8 alloc_end:0x159000
this affects that offend will be 0, which affects badly grub_memset() size
parameter.

I don't know where is root cause of problem, but probably somewhere in
relocator.




    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?41655>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/


_______________________________________________
Bug-grub mailing list
Bug-grub@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-grub

Reply via email to