From: Rich Felker Date: Fri, 28 Dec 2018 21:54:13 +0000 (-0500) Subject: halt getspnam[_r] search on error accessing TCB shadow X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=de7dc1318f493184b20f7661bc12b1829b957b67;p=musl halt getspnam[_r] search on error accessing TCB shadow fallback to /etc/shadow should happen only when the entry is not found in the TCB shadow. otherwise transient errors or permission errors can cause inconsistent results. --- diff --git a/src/passwd/getspnam_r.c b/src/passwd/getspnam_r.c index 1b95dbb6..541e8531 100644 --- a/src/passwd/getspnam_r.c +++ b/src/passwd/getspnam_r.c @@ -94,6 +94,8 @@ int getspnam_r(const char *name, struct spwd *sp, char *buf, size_t size, struct return errno; } } else { + if (errno != ENOENT && errno != ENOTDIR) + return errno; f = fopen("/etc/shadow", "rbe"); if (!f) { if (errno != ENOENT && errno != ENOTDIR)