Lines Matching refs:pwd

29 #include <pwd.h>
125 free_passwd(struct passwd *pwd)
127 free(pwd->pw_name);
128 free(pwd->pw_passwd);
129 free(pwd->pw_class);
130 free(pwd->pw_gecos);
131 free(pwd->pw_dir);
132 free(pwd->pw_shell);
136 sdump_passwd(struct passwd *pwd, char *buffer, size_t buflen)
139 pwd->pw_name, pwd->pw_passwd, pwd->pw_uid, pwd->pw_gid,
140 (uintmax_t)pwd->pw_change, pwd->pw_class, pwd->pw_gecos,
141 pwd->pw_dir, pwd->pw_shell, (uintmax_t)pwd->pw_expire,
142 pwd->pw_fields);
147 dump_passwd(struct passwd *pwd)
149 if (pwd != NULL) {
151 sdump_passwd(pwd, buffer, sizeof(buffer));
159 passwd_read_snapshot_func(struct passwd *pwd, char *line)
170 memset(pwd, 0, sizeof(struct passwd));
174 pwd->pw_name = strdup(s);
175 ATF_REQUIRE(pwd->pw_name != NULL);
178 pwd->pw_passwd = strdup(s);
179 ATF_REQUIRE(pwd->pw_passwd != NULL);
182 pwd->pw_uid = (uid_t)strtol(s, &ts, 10);
187 pwd->pw_gid = (gid_t)strtol(s, &ts, 10);
192 pwd->pw_change = (time_t)strtol(s, &ts, 10);
197 pwd->pw_class = strdup(s);
198 ATF_REQUIRE(pwd->pw_class != NULL);
201 pwd->pw_gecos = strdup(s);
202 ATF_REQUIRE(pwd->pw_gecos != NULL);
205 pwd->pw_dir = strdup(s);
206 ATF_REQUIRE(pwd->pw_dir != NULL);
209 pwd->pw_shell = strdup(s);
210 ATF_REQUIRE(pwd->pw_shell != NULL);
213 pwd->pw_expire = (time_t)strtol(s, &ts, 10);
218 pwd->pw_fields = (int)strtol(s, &ts, 10);
230 free_passwd(pwd);
231 memset(pwd, 0, sizeof(struct passwd));
242 struct passwd *pwd;
245 while ((pwd = getpwent()) != NULL) {
246 if (passwd_test_correctness(pwd, NULL) == 0) {
247 TEST_DATA_APPEND(passwd, td, pwd);
248 if (cb != NULL && cb(pwd, td) != 0)
260 passwd_test_correctness(struct passwd *pwd, void *mdata __unused)
265 dump_passwd(pwd);
268 if (pwd == NULL)
271 if (pwd->pw_name == NULL)
274 if (pwd->pw_passwd == NULL)
277 if (pwd->pw_class == NULL)
280 if (pwd->pw_gecos == NULL)
283 if (pwd->pw_dir == NULL)
286 if (pwd->pw_shell == NULL)
306 passwd_check_ambiguity(struct passwd_test_data *td, struct passwd *pwd)
309 return (TEST_DATA_FIND(passwd, td, pwd, compare_passwd, NULL) !=
316 struct passwd *pwd;
323 pwd = getpwnam(pwd_model->pw_name);
324 if (passwd_test_correctness(pwd, NULL) != 0)
327 if (compare_passwd(pwd, pwd_model, NULL) != 0 &&
328 passwd_check_ambiguity((struct passwd_test_data *)mdata, pwd) != 0)
346 struct passwd *pwd;
353 pwd = getpwuid(pwd_model->pw_uid);
354 if (passwd_test_correctness(pwd, NULL) != 0 ||
355 (compare_passwd(pwd, pwd_model, NULL) != 0 &&
357 pwd) != 0)) {
371 passwd_test_getpwent(struct passwd *pwd, void *mdata __unused)
377 return (passwd_test_correctness(pwd, NULL));