summaryrefslogtreecommitdiffstats
path: root/usr.bin/passwd/local_passwd.c
diff options
context:
space:
mode:
authorgreen <green@FreeBSD.org>2000-08-26 03:42:51 +0000
committergreen <green@FreeBSD.org>2000-08-26 03:42:51 +0000
commitaabc443d9cccb75ad2e667e7c0f610056494b504 (patch)
tree03c3200b60a8968ce24b41fbeb72cb7dba6dedd8 /usr.bin/passwd/local_passwd.c
parent2aa2f64ab15b8b2ecdfdc07958e48422569beca5 (diff)
downloadFreeBSD-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/local_passwd.c')
-rw-r--r--usr.bin/passwd/local_passwd.c6
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);
OpenPOWER on IntegriCloud