commit 63fcc2bc3c1b37227cc9f5b9b8ca45ce091a1477 from: rsc date: Mon Jun 12 17:21:10 2006 UTC avoid pw library commit - d93cc14ecee8fbb0dc0fc746713aba7ee0979c4c commit + 63fcc2bc3c1b37227cc9f5b9b8ca45ce091a1477 blob - 57f46489e70eab780e43f5a2328f4d1ddeab7a93 blob + 517dc773469820d5ca1f819a534c935120525e24 --- src/lib9/_p9dir.c +++ src/lib9/_p9dir.c @@ -77,6 +77,7 @@ disksize(int fd, int dev) #define _HAVESTGEN #endif +int _p9usepwlibrary = 1; /* * Caching the last group and passwd looked up is * a significant win (stupidly enough) on most systems. @@ -123,11 +124,11 @@ _p9dir(struct stat *lst, struct stat *st, char *name, /* user */ if(p && st->st_uid == uid && p->pw_uid == uid) ; - else{ + else if(_p9usepwlibrary){ p = getpwuid(st->st_uid); uid = st->st_uid; } - if(p == nil){ + if(p == nil || st->st_uid != uid || p->pw_uid != uid){ snprint(tmp, sizeof tmp, "%d", (int)st->st_uid); s = tmp; }else @@ -146,11 +147,11 @@ _p9dir(struct stat *lst, struct stat *st, char *name, /* group */ if(g && st->st_gid == gid && g->gr_gid == gid) ; - else{ + else if(_p9usepwlibrary){ g = getgrgid(st->st_gid); gid = st->st_gid; } - if(g == nil){ + if(g == nil || st->st_gid != gid || g->gr_gid != gid){ snprint(tmp, sizeof tmp, "%d", (int)st->st_gid); s = tmp; }else