If the shadow group file is not present, do not try to locate the group

entry from /etc/gshadow, and set the password in /etc/group.
This commit is contained in:
nekral-guest 2007-11-20 20:59:42 +00:00
parent 9aa40bb96d
commit fd0b22cb55
2 changed files with 25 additions and 12 deletions

View File

@ -1,3 +1,9 @@
2007-11-20 Nicolas François <nicolas.francois@centraliens.net>
* src/chgpasswd.c: If the shadow group file is not present, do not
try to locate the group entry from /etc/gshadow, and set the
password in /etc/group.
2007-11-20 Nicolas François <nicolas.francois@centraliens.net>
* libmisc/obscure.c, libmisc/salt.c, src/passwd.c: Match DES, MD5,

View File

@ -116,6 +116,9 @@ int main (int argc, char **argv)
#endif
const struct group *gr;
#ifndef SHADOWGRP
struct group newgr;
#endif
int errors = 0;
int line = 0;
int ok;
@ -124,9 +127,6 @@ int main (int argc, char **argv)
pam_handle_t *pamh = NULL;
int retval;
#endif
#ifndef SHADOWGRP
struct group newgr;
#endif
Prog = Basename (argv[0]);
@ -336,7 +336,10 @@ int main (int argc, char **argv)
continue;
}
#ifdef SHADOWGRP
sg = sgr_locate (name);
if (is_shadow_grp)
sg = sgr_locate (name);
else
sg = NULL;
#endif
/*
@ -345,12 +348,15 @@ int main (int argc, char **argv)
* date is set to the current date.
*/
#ifdef SHADOWGRP
newsg = *sg;
newsg.sg_passwd = cp;
#else
newgr = *gr;
newgr.gr_passwd = cp;
if (sg) {
newsg = *sg;
newsg.sg_passwd = cp;
} else
#endif
{
newgr = *gr;
newgr.gr_passwd = cp;
}
/*
* The updated password file entry is then put back and will
@ -358,10 +364,11 @@ int main (int argc, char **argv)
* other entries have been updated as well.
*/
#ifdef SHADOWGRP
ok = sgr_update (&newsg);
#else
ok = gr_update (&newgr);
if (sg)
ok = sgr_update (&newsg);
else
#endif
ok = gr_update (&newgr);
if (!ok) {
fprintf (stderr,