On Thu, Dec 11, 2008 at 5:15 AM, Giorgos Keramidas <[email protected]> wrote: > On Thu, 11 Dec 2008 08:11:20 +0100 (CET), Trond Endrestøl > <[email protected]> wrote: >>On Thu, 11 Dec 2008 08:32+0200, Giorgos Keramidas wrote: >>> On Wed, 10 Dec 2008 18:00:25 -0800, "Sheldon Givens" <[email protected]> >>> wrote: >>> > --- /usr/src/usr.bin/chpass.c 2008-12-11 01:55:27.000000000 -0800 >>> > +++ /usr/src/usr.bin/chpass.c 2008-12-11 01:57:09.000000000 -0800 >>> > @@ -80,10 +80,11 @@ >>> > { >>> > enum { NEWSH, LOADENTRY, EDITENTRY, NEWPW, NEWEXP } op; >>> > struct passwd lpw, *old_pw, *pw; >>> > - int ch, pfd, tfd; >>> > + int ch, pfd, tfd, itr, auth; >>> > const char *password; >>> > char *arg = NULL; >>> > uid_t uid; >>> > + int max_retries = 3; >>> > #ifdef YP >>> > struct ypclnt *ypclnt; >>> > const char *yp_domain = NULL, *yp_host = NULL; >>> > @@ -227,9 +228,16 @@ >>> > } >>> > >>> > if (old_pw && !master_mode) { >>> > - password = getpass("Password: "); >> >> I'm sure you have noticed the trailing space in the string. >> >>> > - if (strcmp(crypt(password, old_pw->pw_passwd), >>> > - old_pw->pw_passwd) != 0) >>> > + auth = 0; >>> > + for(itr=0;itr<max_retries;itr++) { >>> > + password = getpass("Password:"); >> >> The space's missing in this string. It might be better to stay >> consistent with the original code. > > Good catch. No, I didn't notice the missing space the first time I read > the diff :/
A better way to solve this may be to add an option to set the number of retries before failure and then just pass it through to this function. -Garrett _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[email protected]"

