I'm processing multiboot_tag_mmap and the multiboot_mmap_entry.zero
isn't zero. As best as I can tell grub isn't initializing it. Here is
the code from grub-core/loader/i386/multiboot_mbi.c:

/* Helper for grub_fill_multiboot_mmap.  */
static int
grub_fill_multiboot_mmap_iter (grub_uint64_t addr, grub_uint64_t size,
       grub_memory_type_t type, void *data)
{
  struct multiboot_mmap_entry **mmap_entry = data;

  (*mmap_entry)->addr = addr;
  (*mmap_entry)->len = size;
  (*mmap_entry)->type = type;
  (*mmap_entry)->size = sizeof (struct multiboot_mmap_entry) - sizeof
((*mmap_entry)->size);
  (*mmap_entry)++;

  return 0;
}

And similar code in grub-core/loader/multiboot_mbi2.c:

/* Helper for grub_fill_multiboot_mmap.  */
static int
grub_fill_multiboot_mmap_iter (grub_uint64_t addr, grub_uint64_t size,
       grub_memory_type_t type, void *data)
{
  struct multiboot_mmap_entry **mmap_entry = data;

  (*mmap_entry)->addr = addr;
  (*mmap_entry)->len = size;
  (*mmap_entry)->type = type;
  (*mmap_entry)++;

  return 0;
}

And I'd expect to see:

(*mmap_entry)->zero = 0;

Is there a reason its not being zeroed?

-- Wink

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

Reply via email to