diff options
| author | Bill Paul <wpaul@FreeBSD.org> | 1995-03-24 08:01:01 +0000 |
|---|---|---|
| committer | Bill Paul <wpaul@FreeBSD.org> | 1995-03-24 08:01:01 +0000 |
| commit | 828447008a279419fda88fa9c6e91bddfafe4809 (patch) | |
| tree | 720e9e629664a08c1a66d2aba5571cbee5332eef /lib/libc | |
| parent | 0b15614f220726e1dc3a3183d32c0c9f184afc58 (diff) | |
Notes
Diffstat (limited to 'lib/libc')
| -rw-r--r-- | lib/libc/gen/getpwent.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/lib/libc/gen/getpwent.c b/lib/libc/gen/getpwent.c index af934786fc00..7f5d1b26b649 100644 --- a/lib/libc/gen/getpwent.c +++ b/lib/libc/gen/getpwent.c @@ -100,17 +100,13 @@ tryagain: rv = __hashpw(&key); if(!rv) return (struct passwd *)NULL; #ifdef YP - if (_yp_enabled) { - if(_pw_passwd.pw_name[0] == '+' || _pw_passwd.pw_name[0] == '-') - goto tryagain; - else { - _pw_copy = _pw_passwd; - return (_nextyppass(&_pw_passwd) ? &_pw_passwd : 0); - } + if(_pw_passwd.pw_name[0] == '+' || _pw_passwd.pw_name[0] == '-') { + _pw_copy = _pw_passwd; + return (_nextyppass(&_pw_passwd) ? &_pw_passwd : 0); } #else /* Ignore YP password file entries when YP is disabled. */ - if(_pw_passwd.pw_name[0] == '+') { + if(_pw_passwd.pw_name[0] == '+' || _pw_passwd.pw_name[0] == '-') { goto tryagain; } #endif @@ -143,7 +139,8 @@ getpwnam(name) * Prevent login attempts when YP is not enabled but YP entries * are in /etc/master.passwd. */ - if (rval && _pw_passwd.pw_name[0] == '+') rval = 0; + if (rval && (_pw_passwd.pw_name[0] == '+'|| + _pw_passwd.pw_name[0] == '-')) rval = 0; endpwent(); return(rval ? &_pw_passwd : (struct passwd *)NULL); @@ -178,6 +175,12 @@ getpwuid(uid) rval = _getyppass(&_pw_passwd, ypbuf, "passwd.byuid"); } #endif + /* + * Prevent login attempts when YP is not enabled but YP entries + * are in /etc/master.passwd. + */ + if (rval && (_pw_passwd.pw_name[0] == '+'|| + _pw_passwd.pw_name[0] == '-')) rval = 0; endpwent(); return(rval ? &_pw_passwd : (struct passwd *)NULL); |
