Small Change to chpass.c
Garrett Cooper
yanefbsd at gmail.com
Thu Dec 11 12:39:54 PST 2008
On Thu, Dec 11, 2008 at 5:15 AM, Giorgos Keramidas
<keramida at ceid.upatras.gr> wrote:
> On Thu, 11 Dec 2008 08:11:20 +0100 (CET), Trond Endrestøl <Trond.Endrestol at fagskolen.gjovik.no> wrote:
>>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.
>
> 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
More information about the freebsd-hackers
mailing list