]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/normal/menu.c (grub_menu_execute_entry): Fix NULL
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 25 Jul 2011 05:48:19 +0000 (07:48 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 25 Jul 2011 05:48:19 +0000 (07:48 +0200)
dereference.

ChangeLog
grub-core/normal/menu.c

index 2eb0c0fcd4bae2344cdb00e300a863196e8ef805..5069e5651e4297712d63a8d08c4bb6d2c2d1377f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-23  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/normal/menu.c (grub_menu_execute_entry): Fix NULL
+       dereference.
+
 2011-07-23  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/disk/pata.c (grub_pata_readwrite): Add missing wait.
index 5844cb2f0dc12b3f8c65c46a69b840dadfebf32d..2c127794b0fc6cd1238b2b051c8d0e1d22e28265 100644 (file)
@@ -232,7 +232,8 @@ grub_menu_execute_entry(grub_menu_entry_t entry, int auto_boot)
       grub_env_export ("chosen");
       grub_free (buf);
     }
-  for (ptr = def; *ptr; ptr++)
+
+  for (ptr = def; ptr && *ptr; ptr++)
     {
       if (ptr[0] == '>' && ptr[1] == '>')
        {
@@ -242,10 +243,12 @@ grub_menu_execute_entry(grub_menu_entry_t entry, int auto_boot)
       if (ptr[0] == '>')
        break;
     }
-  if (ptr[0] && ptr[1])
+
+  if (ptr && ptr[0] && ptr[1])
     grub_env_set ("default", ptr + 1);
   else
     grub_env_unset ("default");
+
   grub_script_execute_sourcecode (entry->sourcecode, entry->argc, entry->args);
 
   if (errs_before != grub_err_printed_errors)