From 8b714eb0e16e43a4d1eb626b890c7ca6ff0d8be8 Mon Sep 17 00:00:00 2001 From: robertmh Date: Sat, 10 Nov 2007 20:32:32 +0000 Subject: [PATCH] 2007-11-10 Christian Franke * normal/menu.c (run_menu): Check for empty menu to avoid crash. (grub_menu_run): Likewise. --- ChangeLog | 5 +++++ normal/menu.c | 11 +++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index e2900f9bd..f1ce9682e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-11-10 Christian Franke + + * normal/menu.c (run_menu): Check for empty menu to avoid crash. + (grub_menu_run): Likewise. + 2007-11-10 Robert Millan * include/grub/i386/efi/machine.h: New file. diff --git a/normal/menu.c b/normal/menu.c index 469b3db79..913b730be 100644 --- a/normal/menu.c +++ b/normal/menu.c @@ -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);