diff options
-rw-r--r-- | lib/libc/gen/getpwent.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/libc/gen/getpwent.c b/lib/libc/gen/getpwent.c index ec8b5bc..ae0b177 100644 --- a/lib/libc/gen/getpwent.c +++ b/lib/libc/gen/getpwent.c @@ -941,13 +941,15 @@ nis_map(char *domain, enum nss_lookup_type how, char *buffer, size_t bufsize, int rv, order; *master = 0; - if (snprintf(buffer, bufsize, "master.passwd.by%s", - (how == nss_lt_id) ? "uid" : "name") >= bufsize) - return (NS_UNAVAIL); - rv = yp_order(domain, buffer, &order); - if (rv == 0) { - *master = 1; - return (NS_SUCCESS); + if (geteuid() == 0) { + if (snprintf(buffer, bufsize, "master.passwd.by%s", + (how == nss_lt_id) ? "uid" : "name") >= bufsize) + return (NS_UNAVAIL); + rv = yp_order(domain, buffer, &order); + if (rv == 0) { + *master = 1; + return (NS_SUCCESS); + } } if (snprintf(buffer, bufsize, "passwd.by%s", (how == nss_lt_id) ? "uid" : "name") >= bufsize) |