summaryrefslogtreecommitdiff
path: root/lib/libc
diff options
context:
space:
mode:
authorBill Paul <wpaul@FreeBSD.org>1995-03-24 08:01:01 +0000
committerBill Paul <wpaul@FreeBSD.org>1995-03-24 08:01:01 +0000
commit828447008a279419fda88fa9c6e91bddfafe4809 (patch)
tree720e9e629664a08c1a66d2aba5571cbee5332eef /lib/libc
parent0b15614f220726e1dc3a3183d32c0c9f184afc58 (diff)
Notes
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/gen/getpwent.c21
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);