]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2009-03-07 Bean <bean123ch@gmail.com>
authorbean <bean@localhost>
Sat, 7 Mar 2009 10:50:43 +0000 (10:50 +0000)
committerbean <bean@localhost>
Sat, 7 Mar 2009 10:50:43 +0000 (10:50 +0000)
* loader/i386/efi/linux.c (grub_rescue_cmd_initrd): Fix a bug in initrd
allocation.

ChangeLog
loader/i386/efi/linux.c

index 5d81a1e42df90e0a53aebed1154eac808e1e0187..2add040299329619efef87e83cca19e64fcc229d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-03-07  Bean  <bean123ch@gmail.com>
+
+       * loader/i386/efi/linux.c (grub_rescue_cmd_initrd): Fix a bug in initrd
+       allocation.
+
 2009-03-06  Robert Millan  <rmh@aybabtu.com>
 
        Fix display issue on terminals with screen size other than 80x25
index cd6f3a59f0ae6521b7b6d743abe8ff102a6be501..60fa8823c3b069ab859c57d7b40fe30d5c11ee94 100644 (file)
@@ -963,11 +963,15 @@ grub_rescue_cmd_initrd (int argc, char *argv[])
          if (physical_end > addr_max)
            physical_end = addr_max;
 
-          if (physical_end < addr_min)
+         if (physical_end < page_align (size))
             continue;
 
-         if (physical_end > addr)
-           addr = physical_end - page_align (size);
+         physical_end -= page_align (size);
+
+         if ((physical_end >= addr_min) &&
+             (physical_end >= desc->physical_start) &&
+             (physical_end > addr))
+           addr = physical_end;
        }
     }