bug-grub
[Top][All Lists]
Advanced

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

[bug #41655] booting problem with x86_64 specific image with GRUB (appar


From: Marcin Dawidowicz
Subject: [bug #41655] booting problem with x86_64 specific image with GRUB (apparently in relocator.c)
Date: Fri, 21 Feb 2014 12:59:41 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/31.0.1650.63 Chrome/31.0.1650.63 Safari/537.36

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/




reply via email to

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