-
- *res = 0;
- while (__getpwent_a(f, pw, &line, &len)) {
- if (name && !strcmp(name, pw->pw_name)
- || !name && pw->pw_uid == uid) {
- if (size < len) {
- rv = ERANGE;
- break;
- }
- *res = pw;
- memcpy(buf, line, len);
- FIX(name);
- FIX(passwd);
- FIX(gecos);
- FIX(dir);
- FIX(shell);
- break;
- }