diff options
author | green <green@FreeBSD.org> | 2000-08-26 03:42:51 +0000 |
---|---|---|
committer | green <green@FreeBSD.org> | 2000-08-26 03:42:51 +0000 |
commit | aabc443d9cccb75ad2e667e7c0f610056494b504 (patch) | |
tree | 03c3200b60a8968ce24b41fbeb72cb7dba6dedd8 /usr.bin/passwd | |
parent | 2aa2f64ab15b8b2ecdfdc07958e48422569beca5 (diff) | |
download | FreeBSD-src-aabc443d9cccb75ad2e667e7c0f610056494b504.zip FreeBSD-src-aabc443d9cccb75ad2e667e7c0f610056494b504.tar.gz |
Fix a premature freeing bug found with malloc debugging courtesy John Hay.
Submitted by: jhay
Diffstat (limited to 'usr.bin/passwd')
-rw-r--r-- | usr.bin/passwd/local_passwd.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/usr.bin/passwd/local_passwd.c b/usr.bin/passwd/local_passwd.c index e239683..ccf8bbb 100644 --- a/usr.bin/passwd/local_passwd.c +++ b/usr.bin/passwd/local_passwd.c @@ -132,7 +132,6 @@ getnewpasswd(pw, nis) } /* mixpasswordcase capability */ force_mix_case = login_getcapbool(lc, "mixpasswordcase", 1); - login_close(lc); } #endif @@ -172,8 +171,13 @@ getnewpasswd(pw, nis) #else /* Make a good size salt for algoritms that can use it. */ gettimeofday(&tv,0); +#ifdef LOGIN_CAP if (login_setcryptfmt(lc, "md5", NULL) == NULL) pw_error("cannot set password cipher", 1, 1); + login_close(lc); +#else + (void)crypt_set_format("md5"); +#endif /* Salt suitable for anything */ to64(&salt[0], random(), 3); to64(&salt[3], tv.tv_usec, 3); |