]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/loader/i386/linux.c (grub_cmd_linux): Avoid accessing
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 11 Apr 2012 20:40:20 +0000 (22:40 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 11 Apr 2012 20:40:20 +0000 (22:40 +0200)
kh.loadflags on pre-2.00 kernels.

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

index 4f4913eb4b6d1c43559d45c19ed04ce5490a947a..7ff7a99ccf63940a75b3c2e6d820d69cc744aacb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-04-11  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/loader/i386/linux.c (grub_cmd_linux): Avoid accessing
+       kh.loadflags on pre-2.00 kernels.
+
 2012-04-11  Vladimir Serbinenko  <phcoder@gmail.com>
 
        Terminate UNDI and PXE before launching the payload to avoid problems
index 8a4c9896b8ff9120bd400624fbd23d8fe4dfa907..8f4bd3a532c6775a93ef6ff7c4080c28cbc323d1 100644 (file)
@@ -700,9 +700,12 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
       goto fail;
     }
 
-  if (! (lh.loadflags & GRUB_LINUX_FLAG_BIG_KERNEL))
+  /* FIXME: 2.03 is not always good enough (Linux 2.4 can be 2.03 and
+     still not support 32-bit boot.  */
+  if (lh.header != grub_cpu_to_le32 (GRUB_LINUX_MAGIC_SIGNATURE)
+      || grub_le_to_cpu16 (lh.version) < 0x0203)
     {
-      grub_error (GRUB_ERR_BAD_OS, "zImage doesn't support 32-bit boot"
+      grub_error (GRUB_ERR_BAD_OS, "version too old for 32-bit boot"
 #ifdef GRUB_MACHINE_PCBIOS
                  " (try with `linux16')"
 #endif
@@ -710,12 +713,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
       goto fail;
     }
 
-  /* FIXME: 2.03 is not always good enough (Linux 2.4 can be 2.03 and
-     still not support 32-bit boot.  */
-  if (lh.header != grub_cpu_to_le32 (GRUB_LINUX_MAGIC_SIGNATURE)
-      || grub_le_to_cpu16 (lh.version) < 0x0203)
+  if (! (lh.loadflags & GRUB_LINUX_FLAG_BIG_KERNEL))
     {
-      grub_error (GRUB_ERR_BAD_OS, "version too old for 32-bit boot"
+      grub_error (GRUB_ERR_BAD_OS, "zImage doesn't support 32-bit boot"
 #ifdef GRUB_MACHINE_PCBIOS
                  " (try with `linux16')"
 #endif