diff options
author | Kevin Lo <kevlo@FreeBSD.org> | 2012-02-22 06:27:20 +0000 |
---|---|---|
committer | Kevin Lo <kevlo@FreeBSD.org> | 2012-02-22 06:27:20 +0000 |
commit | 29dcf726d233505532b89c31f8ba31eb69fa26df (patch) | |
tree | 456afe25d5d911e27dc003830e6ca01ed80dab54 /usr.sbin/rpc.yppasswdd | |
parent | 5bfdf7f990aec67ac9c94689556bad53eebef73a (diff) |
Handle NULL return from crypt(3). Mostly from DragonFly
Notes
Notes:
svn path=/head/; revision=231994
Diffstat (limited to 'usr.sbin/rpc.yppasswdd')
-rw-r--r-- | usr.sbin/rpc.yppasswdd/yppasswdd_server.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/usr.sbin/rpc.yppasswdd/yppasswdd_server.c b/usr.sbin/rpc.yppasswdd/yppasswdd_server.c index 446b13040be3..0260e4c9c1bc 100644 --- a/usr.sbin/rpc.yppasswdd/yppasswdd_server.c +++ b/usr.sbin/rpc.yppasswdd/yppasswdd_server.c @@ -460,6 +460,7 @@ yppasswdproc_update_1_svc(yppasswd *argp, struct svc_req *rqstp) int passwd_changed = 0; int shell_changed = 0; int gecos_changed = 0; + char *cryptpw; char *oldshell = NULL; char *oldgecos = NULL; char *passfile_hold; @@ -537,8 +538,8 @@ yppasswdproc_update_1_svc(yppasswd *argp, struct svc_req *rqstp) /* Step 2: check that the supplied oldpass is valid. */ - if (strcmp(crypt(argp->oldpass, yp_password.pw_passwd), - yp_password.pw_passwd)) { + cryptpw = crypt(argp->oldpass, yp_password.pw_passwd); + if (cryptpw == NULL || strcmp(cryptpw, yp_password.pw_passwd)) { yp_error("rejected change attempt -- bad password"); yp_error("client address: %s username: %s", inet_ntoa(rqhost->sin_addr), |