X-Git-Url: http://andersk.mit.edu/gitweb/nss_nonlocal.git/blobdiff_plain/01ce539c8311c02dde9590c150b9b8b4346c83fd..22562df07d1d1e7bb6a8adba067d8945f293c841:/nonlocal-shadow.c diff --git a/nonlocal-shadow.c b/nonlocal-shadow.c index 6524ee8..f1e03a1 100644 --- a/nonlocal-shadow.c +++ b/nonlocal-shadow.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -179,5 +180,13 @@ _nss_nonlocal_getspnam_r(const char *name, struct spwd *pwd, if (status == NSS_STATUS_TRYAGAIN && *errnop == ERANGE) break; } while (__nss_next(&nip, fct_name, &fct.ptr, status, 0) == 0); - return status; + if (status != NSS_STATUS_SUCCESS) + return status; + + if (strcmp(name, pwd->sp_namp) != 0) { + syslog(LOG_ERR, "nss_nonlocal: discarding shadow %s from lookup for shadow %s\n", pwd->sp_namp, name); + return NSS_STATUS_NOTFOUND; + } + + return NSS_STATUS_SUCCESS; }