From 9b030d1073af74671ea686bb3b7929a981597da8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Sat, 27 Mar 1999 21:51:33 +0000 Subject: [PATCH] Partial fix for the forking problem: if we can't access the master maps, try again with the unrestricted map. PR: bin/10821 --- lib/libc/gen/getpwent.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/libc/gen/getpwent.c b/lib/libc/gen/getpwent.c index 2ee0e32aabc..f46683fe4ee 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, ':');