Index: head/sbin/init/init.c =================================================================== --- head/sbin/init/init.c +++ head/sbin/init/init.c @@ -919,7 +919,7 @@ _exit(0); password = crypt(clear, pp->pw_passwd); bzero(clear, _PASSWORD_LEN); - if (password == NULL || + if (password != NULL && strcmp(password, pp->pw_passwd) == 0) break; warning("single-user login failed\n"); Index: head/usr.bin/lock/lock.c =================================================================== --- head/usr.bin/lock/lock.c +++ head/usr.bin/lock/lock.c @@ -223,7 +223,7 @@ if (usemine) { s[strlen(s) - 1] = '\0'; cryptpw = crypt(s, mypw); - if (cryptpw == NULL || !strcmp(mypw, cryptpw)) + if (cryptpw != NULL && !strcmp(mypw, cryptpw)) break; } else if (!strcmp(s, s1))