]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2007-11-10 Christian Franke <franke@computer.org>
authorrobertmh <robertmh@localhost>
Sat, 10 Nov 2007 20:32:32 +0000 (20:32 +0000)
committerrobertmh <robertmh@localhost>
Sat, 10 Nov 2007 20:32:32 +0000 (20:32 +0000)
* normal/menu.c (run_menu): Check for empty menu to avoid crash.
(grub_menu_run): Likewise.

ChangeLog
normal/menu.c

index e2900f9bd0e70563e850b2dd785d98a83d2f9b59..f1ce9682e5d7e434e1007410d754867cebeb1ff5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-11-10  Christian Franke  <franke@computer.org>
+
+       * normal/menu.c (run_menu): Check for empty menu to avoid crash.
+       (grub_menu_run): Likewise.
+
 2007-11-10  Robert Millan  <rmh@aybabtu.com>
 
        * include/grub/i386/efi/machine.h: New file.
index 469b3db799be91ce5ef6431b187ca6a7f1a7887b..913b730bea3aa247e0714b9cb6b8b3aedfa6bb80 100644 (file)
@@ -412,7 +412,11 @@ run_menu (grub_menu_t menu, int nested)
              goto refresh;
 
            case 'e':
-             grub_menu_entry_run (get_entry (menu, first + offset));
+               {
+                 grub_menu_entry_t e = get_entry (menu, first + offset);
+                 if (e)
+                   grub_menu_entry_run (e);
+               }
              goto refresh;
              
            default:
@@ -451,10 +455,13 @@ grub_menu_run (grub_menu_t menu, int nested)
       if (boot_entry < 0)
        break;
 
+      e = get_entry (menu, boot_entry);
+      if (! e)
+       continue; /* Menu is empty.  */
+       
       grub_cls ();
       grub_setcursor (1);
 
-      e = get_entry (menu, boot_entry);
       grub_printf ("  Booting \'%s\'\n\n", e->title);
   
       run_menu_entry (e);