1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-12 09:58:36 +00:00

rpc.yppasswdd: Fix dirname(3) usage after r305952.

PR:		234972
Submitted by:	Edward Fuhr <edward.fuhr@us.fujitsu.com> (original)
MFC after:	3 days
This commit is contained in:
Mark Johnston 2019-06-03 16:51:07 +00:00
parent 8e7299c08b
commit 9afd281187
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=348547

View File

@ -468,7 +468,9 @@ yppasswdproc_update_1_svc(yppasswd *argp, struct svc_req *rqstp)
char *cryptpw;
char *oldshell = NULL;
char *oldgecos = NULL;
char *passdir;
char *passfile_hold;
char passdir_buf[MAXPATHLEN + 2];
char passfile_buf[MAXPATHLEN + 2];
char passfile_hold_buf[MAXPATHLEN + 2];
char *domain = yppasswd_domain;
@ -602,11 +604,14 @@ yppasswdproc_update_1_svc(yppasswd *argp, struct svc_req *rqstp)
snprintf(passfile_hold_buf, sizeof(passfile_hold_buf),
"%s.hold", passfile);
passfile_hold = (char *)&passfile_hold_buf;
/* Step 5: make a new password file with the updated info. */
if (pw_init(dirname(passfile), passfile)) {
snprintf(passdir_buf, sizeof(passdir_buf), "%s", passfile);
passdir = dirname(passdir_buf);
if (pw_init(passdir, passfile)) {
yp_error("pw_init() failed");
return &result;
}
@ -726,7 +731,9 @@ yppasswdproc_update_master_1_svc(master_yppasswd *argp,
uid_t uid;
int rval = 0;
DBT key, data;
char *passdir;
char *passfile_hold;
char passdir_buf[MAXPATHLEN + 2];
char passfile_buf[MAXPATHLEN + 2];
char passfile_hold_buf[MAXPATHLEN + 2];
struct sockaddr_in *rqhost;
@ -829,7 +836,10 @@ allow additions to be made to the password database");
"%s.hold", passfile);
passfile_hold = (char *)&passfile_hold_buf;
if (pw_init(dirname(passfile), passfile)) {
snprintf(passdir_buf, sizeof(passdir_buf), "%s", passfile);
passdir = dirname(passdir_buf);
if (pw_init(passdir, passfile)) {
yp_error("pw_init() failed");
return &result;
}