[BACK]Return to local_passwd.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / passwd

Diff for /src/usr.bin/passwd/local_passwd.c between version 1.31 and 1.32

version 1.31, 2004/03/10 21:23:17 version 1.32, 2004/04/20 23:21:23
Line 63 
Line 63 
 int  int
 local_passwd(char *uname, int authenticated)  local_passwd(char *uname, int authenticated)
 {  {
         struct passwd *pw;          struct passwd *pw, *opw;
         login_cap_t *lc;          login_cap_t *lc;
         sigset_t fullset;          sigset_t fullset;
         time_t period;          time_t period;
Line 78 
Line 78 
                 warnx("unknown user %s.", uname);                  warnx("unknown user %s.", uname);
                 return(1);                  return(1);
         }          }
           if ((opw = pw_dup(pw)) == NULL) {
                   warn(NULL);
                   return(1);
           }
         if ((lc = login_getclass(pw->pw_class)) == NULL) {          if ((lc = login_getclass(pw->pw_class)) == NULL) {
                 warnx("unable to get login class for user %s.", uname);                  warnx("unable to get login class for user %s.", uname);
                 return(1);                  return(1);
Line 133 
Line 137 
                 pw_error(_PATH_MASTERPASSWD, 1, 1);                  pw_error(_PATH_MASTERPASSWD, 1, 1);
   
         /* Update master.passwd file and rebuild spwd.db. */          /* Update master.passwd file and rebuild spwd.db. */
         pw_copy(pfd, tfd, pw);          pw_copy(pfd, tfd, pw, opw);
           free(opw);
         if (pw_mkdb(uname, pwflags) < 0)          if (pw_mkdb(uname, pwflags) < 0)
                 pw_error(NULL, 0, 1);                  pw_error(NULL, 0, 1);
   

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.32