summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libc/gen/getpwent.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/libc/gen/getpwent.c b/lib/libc/gen/getpwent.c
index 2ee0e32..f46683f 100644
--- a/lib/libc/gen/getpwent.c
+++ b/lib/libc/gen/getpwent.c
@@ -747,14 +747,21 @@ _getyppass(struct passwd *pw, const char *name, const char *map)
return 0;
}
- sprintf(mastermap,"%s",map);
-
if (_gotmaster == YP_HAVE_MASTER)
sprintf(mastermap,"master.%s", map);
+ else
+ sprintf(mastermap,"%s",map);
if(yp_match(_pw_yp_domain, (char *)&mastermap, name, strlen(name),
- &result, &resultlen))
- return 0;
+ &result, &resultlen)) {
+ if (_gotmaster != YP_HAVE_MASTER)
+ return 0;
+ sprintf(mastermap,"%s",map);
+ if (yp_match(_pw_yp_domain, (char *)&mastermap,
+ name, strlen(name), &result, &resultlen))
+ return 0;
+ _gotmaster = YP_HAVE_NONE;
+ }
if (!_pw_stepping_yp) {
s = strchr(result, ':');
OpenPOWER on IntegriCloud