]> git.saurik.com Git - apple/system_cmds.git/blobdiff - chkpasswd.tproj/file_passwd.c
system_cmds-431.tar.gz
[apple/system_cmds.git] / chkpasswd.tproj / file_passwd.c
index 51fc8c16631bbb22d3b41d05b67a41dde8020cd4..56e7a00755b9511f28e0fa395031710847da1361 100644 (file)
@@ -26,6 +26,7 @@
 #include <unistd.h>
 #include <pwd.h>
 #include <errno.h>
+#include <string.h>
 #include "stringops.h"
 
 #define TEMP_FILE "/tmp/.pwtmp"
@@ -37,8 +38,6 @@
 
 extern void checkpasswd(char *, char *);
 
-static int do_compat = 1;
-
 char *
 getline(FILE *fp)
 {
@@ -197,7 +196,7 @@ rewrite_file(char *pwname, FILE *fp, struct passwd *newpw)
                        continue;
                }
 
-               fprintf(tfp, "%s:%s:%d:%d:%s:%d:%d:%s:%s:%s\n",
+               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);
@@ -253,8 +252,7 @@ file_check_passwd(char *uname, char *locn)
        fname = _PASSWD_FILE;
        if (locn != NULL) fname = locn;
 
-       fp = fopen(fname, "r");
-       if (fp == NULL)
+       if (access(fname,R_OK) || (fp = fopen(fname, "r")) == NULL)
        {
                fprintf(stderr, "can't read file \"%s\": ", fname);
                perror("");