Lines Matching refs:pwd

33 #include <pwd.h>
127 free_passwd(struct passwd *pwd)
129 free(pwd->pw_name);
130 free(pwd->pw_passwd);
131 free(pwd->pw_class);
132 free(pwd->pw_gecos);
133 free(pwd->pw_dir);
134 free(pwd->pw_shell);
138 sdump_passwd(struct passwd *pwd, char *buffer, size_t buflen)
141 pwd->pw_name, pwd->pw_passwd, pwd->pw_uid, pwd->pw_gid,
142 pwd->pw_change, pwd->pw_class, pwd->pw_gecos, pwd->pw_dir,
143 pwd->pw_shell, pwd->pw_expire, pwd->pw_fields);
147 dump_passwd(struct passwd *pwd)
149 if (pwd != NULL) {
151 sdump_passwd(pwd, buffer, sizeof(buffer));
158 passwd_read_snapshot_func(struct passwd *pwd, char *line)
168 memset(pwd, 0, sizeof(struct passwd));
172 pwd->pw_name = strdup(s);
173 assert(pwd->pw_name != NULL);
176 pwd->pw_passwd = strdup(s);
177 assert(pwd->pw_passwd != NULL);
180 pwd->pw_uid = (uid_t)strtol(s, &ts, 10);
185 pwd->pw_gid = (gid_t)strtol(s, &ts, 10);
190 pwd->pw_change = (time_t)strtol(s, &ts, 10);
195 pwd->pw_class = strdup(s);
196 assert(pwd->pw_class != NULL);
199 pwd->pw_gecos = strdup(s);
200 assert(pwd->pw_gecos != NULL);
203 pwd->pw_dir = strdup(s);
204 assert(pwd->pw_dir != NULL);
207 pwd->pw_shell = strdup(s);
208 assert(pwd->pw_shell != NULL);
211 pwd->pw_expire = (time_t)strtol(s, &ts, 10);
216 pwd->pw_fields = (int)strtol(s, &ts, 10);
228 free_passwd(pwd);
229 memset(pwd, 0, sizeof(struct passwd));
239 struct passwd *pwd;
242 while ((pwd = getpwent()) != NULL) {
243 if (passwd_test_correctness(pwd, NULL) == 0)
244 TEST_DATA_APPEND(passwd, td, pwd);
254 passwd_test_correctness(struct passwd *pwd, void *mdata)
258 dump_passwd(pwd);
261 if (pwd == NULL)
264 if (pwd->pw_name == NULL)
267 if (pwd->pw_passwd == NULL)
270 if (pwd->pw_class == NULL)
273 if (pwd->pw_gecos == NULL)
276 if (pwd->pw_dir == NULL)
279 if (pwd->pw_shell == NULL)
297 passwd_check_ambiguity(struct passwd_test_data *td, struct passwd *pwd)
300 return (TEST_DATA_FIND(passwd, td, pwd, compare_passwd,
307 struct passwd *pwd;
314 pwd = getpwnam(pwd_model->pw_name);
315 if (passwd_test_correctness(pwd, NULL) != 0)
318 if ((compare_passwd(pwd, pwd_model, NULL) != 0) &&
319 (passwd_check_ambiguity((struct passwd_test_data *)mdata, pwd)
337 struct passwd *pwd;
344 pwd = getpwuid(pwd_model->pw_uid);
345 if ((passwd_test_correctness(pwd, NULL) != 0) ||
346 ((compare_passwd(pwd, pwd_model, NULL) != 0) &&
347 (passwd_check_ambiguity((struct passwd_test_data *)mdata, pwd)
360 passwd_test_getpwent(struct passwd *pwd, void *mdata)
364 return (passwd_test_correctness(pwd, NULL));