Use absolute offsets for start of embedding area.

This commit is contained in:
Grégoire Sutre 2010-06-08 12:23:30 +02:00
parent f4d095d77d
commit e8a6f3b6a5
2 changed files with 10 additions and 5 deletions

View file

@ -1,3 +1,8 @@
2010-06-08 Grégoire Sutre <gregoire.sutre@gmail.com>
* util/i386/pc/grub-setup.c (setup): Use absolute offsets for start of
embedding area. Use <= instead of == when checking for non-emptiness.
2010-06-08 Grégoire Sutre <gregoire.sutre@gmail.com> 2010-06-08 Grégoire Sutre <gregoire.sutre@gmail.com>
* configure.ac: Add `.' to the directories searched for unifont. * configure.ac: Add `.' to the directories searched for unifont.

View file

@ -126,8 +126,8 @@ setup (const char *dir,
/* There's always an embed region, and it starts right after the MBR. */ /* There's always an embed region, and it starts right after the MBR. */
embed_region.start = 1; embed_region.start = 1;
if (embed_region.end > p->start) if (embed_region.end > grub_partition_get_start (p))
embed_region.end = p->start; embed_region.end = grub_partition_get_start (p);
return 0; return 0;
} }
@ -147,8 +147,8 @@ setup (const char *dir,
/* If there's an embed region, it is in a dedicated partition. */ /* If there's an embed region, it is in a dedicated partition. */
if (! memcmp (&gptdata.type, &grub_gpt_partition_type_bios_boot, 16)) if (! memcmp (&gptdata.type, &grub_gpt_partition_type_bios_boot, 16))
{ {
embed_region.start = p->start; embed_region.start = grub_partition_get_start (p);
embed_region.end = p->start + p->len; embed_region.end = grub_partition_get_start (p) + grub_partition_get_len (p);
return 1; return 1;
} }
@ -361,7 +361,7 @@ setup (const char *dir,
else else
grub_util_error (_("No DOS-style partitions found")); grub_util_error (_("No DOS-style partitions found"));
if (embed_region.end == embed_region.start) if (embed_region.end <= embed_region.start)
{ {
if (! strcmp (dest_partmap, "msdos")) if (! strcmp (dest_partmap, "msdos"))
grub_util_warn (_("This msdos-style partition label has no post-MBR gap; embedding won't be possible!")); grub_util_warn (_("This msdos-style partition label has no post-MBR gap; embedding won't be possible!"));