Small Change to chpass.c
Trond Endrestøl
Trond.Endrestol at fagskolen.gjovik.no
Wed Dec 10 23:11:31 PST 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Thu, 11 Dec 2008 08:32+0200, Giorgos Keramidas wrote:
> On Wed, 10 Dec 2008 18:00:25 -0800, "Sheldon Givens" <sheldon at sigsegv.ca> 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.
> > + if(strcmp(crypt(password, old_pw->pw_passwd),
> > + old_pw->pw_passwd) == 0) {
> > + auth=1;
> > + break;
> > + }
> > + }
> > + if (!auth)
> > baduser();
> > } else {
> > password = "";
- --
- ----------------------------------------------------------------------
Trond Endrestøl | Trond.Endrestol at fagskolen.gjovik.no
ACM, NAS, NUUG, SAGE, USENIX | FreeBSD 6.2-STABLE & Pine 4.64
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (FreeBSD)
iD8DBQFJQL0dbYWZalUoElsRAolhAJoC4iTyrVY3xeoChg3iWRsDLpvonwCeP0yT
1kM28vaxZtNH9LGqyZzZCTA=
=0+CT
-----END PGP SIGNATURE-----
More information about the freebsd-hackers
mailing list