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:
parent
4153d35919
commit
e49249921c
@ -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 {
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user