* grub-core/normal/main.c: Don't drop to rescue console in

case of password-protected prompt and no menu entries.
This commit is contained in:
Vladimir Serbinenko 2014-09-21 18:51:09 +02:00
parent 7c378c3964
commit 41c6f91fce
6 changed files with 16 additions and 7 deletions

View file

@ -1,3 +1,8 @@
2014-09-21 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/normal/main.c: Don't drop to rescue console in
case of password-protected prompt and no menu entries.
2014-09-21 Vladimir Serbinenko <phcoder@gmail.com> 2014-09-21 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/commands/keylayouts.c: Ignore unknown keys. * grub-core/commands/keylayouts.c: Ignore unknown keys.

View file

@ -302,7 +302,7 @@ grub_enter_normal_mode (const char *config)
nested_level++; nested_level++;
grub_normal_execute (config, 0, 0); grub_normal_execute (config, 0, 0);
grub_boot_time ("Entering shell"); grub_boot_time ("Entering shell");
grub_cmdline_run (0); grub_cmdline_run (0, 1);
nested_level--; nested_level--;
if (grub_normal_exit_level) if (grub_normal_exit_level)
grub_normal_exit_level--; grub_normal_exit_level--;
@ -424,11 +424,15 @@ grub_normal_read_line (char **line, int cont,
} }
void void
grub_cmdline_run (int nested) grub_cmdline_run (int nested, int force_auth)
{ {
grub_err_t err = GRUB_ERR_NONE; grub_err_t err = GRUB_ERR_NONE;
err = grub_auth_check_authentication (NULL); do
{
err = grub_auth_check_authentication (NULL);
}
while (err && force_auth);
if (err) if (err)
{ {

View file

@ -773,7 +773,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot)
case 'c': case 'c':
menu_fini (); menu_fini ();
grub_cmdline_run (1); grub_cmdline_run (1, 0);
goto refresh; goto refresh;
case 'e': case 'e':

View file

@ -1396,7 +1396,7 @@ grub_menu_entry_run (grub_menu_entry_t entry)
case GRUB_TERM_CTRL | 'c': case GRUB_TERM_CTRL | 'c':
case GRUB_TERM_KEY_F2: case GRUB_TERM_KEY_F2:
grub_cmdline_run (1); grub_cmdline_run (1, 0);
goto refresh; goto refresh;
case GRUB_TERM_CTRL | 'x': case GRUB_TERM_CTRL | 'x':

View file

@ -109,7 +109,7 @@ cmdline_cat_test (void)
grub_video_checksum ("cmdline_cat"); grub_video_checksum ("cmdline_cat");
if (!grub_test_use_gfxterm ()) if (!grub_test_use_gfxterm ())
grub_cmdline_run (1); grub_cmdline_run (1, 0);
grub_test_use_gfxterm_end (); grub_test_use_gfxterm_end ();

View file

@ -66,7 +66,7 @@ void grub_menu_init_page (int nested, int edit,
struct grub_term_output *term); struct grub_term_output *term);
void grub_normal_init_page (struct grub_term_output *term, int y); void grub_normal_init_page (struct grub_term_output *term, int y);
char *grub_file_getline (grub_file_t file); char *grub_file_getline (grub_file_t file);
void grub_cmdline_run (int nested); void grub_cmdline_run (int nested, int force_auth);
/* Defined in `cmdline.c'. */ /* Defined in `cmdline.c'. */
char *grub_cmdline_get (const char *prompt); char *grub_cmdline_get (const char *prompt);