diff -ru system_cmds-431/passwd.tproj/file_passwd.c system_cmds-431+iPhone/passwd.tproj/file_passwd.c --- system_cmds-431/passwd.tproj/file_passwd.c 2006-02-21 03:47:32.000000000 +0000 +++ system_cmds-431+iPhone/passwd.tproj/file_passwd.c 2008-02-03 00:59:35.000000000 +0000 @@ -211,31 +211,31 @@ { fprintf(stderr, "warning: bad format for entry: \"%s\"\n", line); fprintf(tfp, "%s\n", line); - if (cfp != NULL) fprintf(cfp, "%s\n", line); continue; } if (strcmp(newpw->pw_name, pw->pw_name)) { fprintf(tfp, "%s\n", line); - if (cfp != NULL) fprintf(cfp, "%s\n", line); - continue; - } + } else { + pw = newpw; fprintf(tfp, "%s:%s:%d:%d:%s:%ld:%ld:%s:%s:%s\n", newpw->pw_name, newpw->pw_passwd, newpw->pw_uid, newpw->pw_gid, newpw->pw_class, newpw->pw_change, newpw->pw_expire, newpw->pw_gecos, newpw->pw_dir, newpw->pw_shell); + } + if (cfp != NULL) { - fprintf(cfp, "%s:",newpw->pw_name); - if ((newpw->pw_passwd == NULL) || (newpw->pw_passwd[0] == '\0')) + fprintf(cfp, "%s:",pw->pw_name); + if ((pw->pw_passwd == NULL) || (pw->pw_passwd[0] == '\0')) fprintf(cfp, ":"); else fprintf(cfp, "*:"); fprintf(cfp, "%d:%d:%s:%s:%s\n", - newpw->pw_uid, newpw->pw_gid, newpw->pw_gecos, - newpw->pw_dir, newpw->pw_shell); + pw->pw_uid, pw->pw_gid, pw->pw_gecos, + pw->pw_dir, pw->pw_shell); } }