]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/loader/i386/linux.c (find_efi_mmap_size): Don't decrease
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 2 Jul 2012 09:14:37 +0000 (11:14 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 2 Jul 2012 09:14:37 +0000 (11:14 +0200)
efi_mmap_size.
Reported by: Stuart Hayes.

ChangeLog
grub-core/loader/i386/linux.c

index f6e864a03299be25faa6ef6deb0762ff6bc4bdac..53ad372f0b9a4acab8b08abe9ce14701452b704b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-07-02  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/loader/i386/linux.c (find_efi_mmap_size): Don't decrease
+       efi_mmap_size.
+       Reported by: Stuart Hayes.
+
 2012-06-28  Vladimir Serbinenko  <phcoder@gmail.com>
 
        Add monochrome text support (mda_text, aka `hercules' in grub-legacy).
index 62087cfaa8bc41003c6f986272631efe4102af8b..d34b2f8f76690af20d8956594c3b7ad57e1df00d 100644 (file)
@@ -118,12 +118,13 @@ find_efi_mmap_size (void)
       int ret;
       grub_efi_memory_descriptor_t *mmap;
       grub_efi_uintn_t desc_size;
+      grub_efi_uintn_t cur_mmap_size = mmap_size;
 
-      mmap = grub_malloc (mmap_size);
+      mmap = grub_malloc (cur_mmap_size);
       if (! mmap)
        return 0;
 
-      ret = grub_efi_get_memory_map (&mmap_size, mmap, 0, &desc_size, 0);
+      ret = grub_efi_get_memory_map (&cur_mmap_size, mmap, 0, &desc_size, 0);
       grub_free (mmap);
 
       if (ret < 0)
@@ -134,6 +135,8 @@ find_efi_mmap_size (void)
       else if (ret > 0)
        break;
 
+      if (mmap_size < cur_mmap_size)
+       mmap_size = cur_mmap_size;
       mmap_size += (1 << 12);
     }