Fix for PR #3141: check for NULL before strdup()ing pw->pw_class.

(I'm not sure why this happens, though I suspect it may be because
the server is configured with only passwd maps instead of both passwd
and master.passwd maps. This is allowed, but I think in this case
pw_class is left NULL, hence the problem.)

Also applied similar patch to chpass/pw_yp.c just for paranoia's sake.
This commit is contained in:
Bill Paul 1997-03-29 20:29:12 +00:00
parent 4153d35919
commit e49249921c
2 changed files with 5 additions and 3 deletions

View File

@ -35,7 +35,7 @@
* Center for Telecommunications Research
* Columbia University, New York City
*
* $Id$
* $Id: pw_yp.c,v 1.9 1997/02/22 19:54:26 peter Exp $
*/
#ifdef YP
@ -441,7 +441,8 @@ void yp_submit(pw)
master_yppasswd.newpw.pw_gecos = strdup(pw->pw_gecos);
master_yppasswd.newpw.pw_dir = strdup(pw->pw_dir);
master_yppasswd.newpw.pw_shell = strdup(pw->pw_shell);
master_yppasswd.newpw.pw_class = strdup(pw->pw_class);
master_yppasswd.newpw.pw_class = pw->pw_class != NULL ?
strdup(pw->pw_class) : "";
master_yppasswd.oldpass = ""; /* not really needed */
master_yppasswd.domain = yp_domain;
} else {

View File

@ -101,7 +101,8 @@ for other users");
master_yppasswd.newpw.pw_gecos = strdup(pw->pw_gecos);
master_yppasswd.newpw.pw_dir = strdup(pw->pw_dir);
master_yppasswd.newpw.pw_shell = strdup(pw->pw_shell);
master_yppasswd.newpw.pw_class = strdup(pw->pw_class);
master_yppasswd.newpw.pw_class = pw->pw_class != NULL ?
strdup(pw->pw_class) : "";
master_yppasswd.oldpass = "";
master_yppasswd.domain = yp_domain;
} else {