- while ((ch = getc(_pw_fp)) != '\n' && ch != EOF)
- ;
- continue;
- }
- _pw_passwd.pw_name = strsep(&bp, ":\n");
- _pw_passwd.pw_passwd = strsep(&bp, ":\n");
- if (!(cp = strsep(&bp, ":\n")))
- continue;
- _pw_passwd.pw_uid = atoi(cp);
- if (!(cp = strsep(&bp, ":\n")))
- continue;
- _pw_passwd.pw_gid = atoi(cp);
- if (_pw_master) {
- _pw_passwd.pw_class = strsep(&bp, ":\n");
- if (!(cp = strsep(&bp, ":\n")))
- continue;
- _pw_passwd.pw_change = atol(cp);
- if (!(cp = strsep(&bp, ":\n")))
- continue;
- _pw_passwd.pw_expire = atol(cp);
- }
- _pw_passwd.pw_gecos = strsep(&bp, ":\n");
- _pw_passwd.pw_dir = strsep(&bp, ":\n");
- _pw_passwd.pw_shell = strsep(&bp, ":\n");
- if (!_pw_passwd.pw_shell)
- continue;
+ p = (_pw_euid = geteuid()) ? _PATH_MP_DB : _PATH_SMP_DB;
+ if (_pw_db = dbm_open(p, O_RDONLY, 0))