If I type the wrong password into bioctl at boot, disks don't exist, filesystems don't get mounted, and generally lots of things go wrong. All I need is a second chance to remind me to type the right password.
Index: bioctl.c =================================================================== RCS file: /home/tedu/cvs/src/sbin/bioctl/bioctl.c,v retrieving revision 1.98 diff -u -r1.98 bioctl.c --- bioctl.c 1 Dec 2010 19:40:18 -0000 1.98 +++ bioctl.c 13 Jan 2011 23:47:24 -0000 @@ -699,6 +699,7 @@ int rv, no_dev, fd; dev_t *dt; u_int16_t min_disks = 0; + int retry = 0; if (!dev_list) errx(1, "no devices specified"); @@ -738,6 +739,7 @@ if (level == 'C' && no_dev != min_disks) errx(1, "not exactly one partition"); +again: memset(&create, 0, sizeof(create)); create.bc_cookie = bl.bl_cookie; create.bc_level = level; @@ -802,8 +804,14 @@ memset(&kdfinfo, 0, sizeof(kdfinfo)); memset(&create, 0, sizeof(create)); if (rv == -1) { - if (errno == EPERM) + if (errno == EPERM) { + if (!retry) { + warnx("Incorrect passphrase. Try again."); + retry = 1; + goto again; + } errx(1, "Incorrect passphrase"); + } err(1, "BIOCCREATERAID"); }