When a password is set for the bootloader ("installboot -o password=..."),
it currently complains about an unknown command and prints a usage if the password is entered wrong: ... Choose an option; RETURN for default; SPACE to stop countdown. Option 1 will be chosen in 0 seconds. Password: * Password: * Password: * unknown command commands are: boot [xdNx:][filename] [-12acdqsvxz] (ex. "hd0a:netbsd.old -s" ls [path] dev xd[N[x]]: consdev {pc|com[0123]|com[0123]kbd|auto} modules {enabled|disabled} load {path_to_module} multiboot [xdNx:][filename] [<args>] help|? quit Choose an option; RETURN for default; SPACE to stop countdown. Option 1 will be chosen in 0 seconds. ... This is confusing, plus someone may use it to determine bits of information about the system. What should happen instead is that the user is informed that the password is wrong: ... Choose an option; RETURN for default; SPACE to stop countdown. Option 1 will be chosen in 0 seconds. Password: **** Password: **** Password: **** Wrong password. Choose an option; RETURN for default; SPACE to stop countdown. ... Implement the latter behaviour.
This commit is contained in:
parent
b2cd31c11a
commit
fed6262c88
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: boot2.c,v 1.47 2010/01/17 14:54:44 drochner Exp $ */
|
||||
/* $NetBSD: boot2.c,v 1.48 2010/02/08 21:25:32 hubertf Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2008 The NetBSD Foundation, Inc.
|
||||
@ -344,11 +344,23 @@ boot2(int biosdev, u_int biossector)
|
||||
#else
|
||||
c = awaitkey((bootconf.timeout < 0) ? 0 : bootconf.timeout, 1);
|
||||
#endif
|
||||
if ((c != '\r') && (c != '\n') && (c != '\0') &&
|
||||
((boot_params.bp_flags & X86_BP_FLAGS_PASSWORD) == 0
|
||||
|| check_password(boot_params.bp_password))) {
|
||||
printf("type \"?\" or \"help\" for help.\n");
|
||||
if ((c != '\r') && (c != '\n') && (c != '\0')) {
|
||||
if ((boot_params.bp_flags & X86_BP_FLAGS_PASSWORD) == 0) {
|
||||
/* do NOT ask for password */
|
||||
bootmenu(); /* does not return */
|
||||
} else {
|
||||
/* DO ask for password */
|
||||
if (check_password(boot_params.bp_password)) {
|
||||
/* password ok */
|
||||
printf("type \"?\" or \"help\" for help.\n");
|
||||
bootmenu(); /* does not return */
|
||||
} else {
|
||||
/* bad password */
|
||||
printf("Wrong password.\n");
|
||||
currname = 0;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user