commit - d93cc14ecee8fbb0dc0fc746713aba7ee0979c4c
commit + 63fcc2bc3c1b37227cc9f5b9b8ca45ce091a1477
blob - 57f46489e70eab780e43f5a2328f4d1ddeab7a93
blob + 517dc773469820d5ca1f819a534c935120525e24
--- src/lib9/_p9dir.c
+++ src/lib9/_p9dir.c
#define _HAVESTGEN
#endif
+int _p9usepwlibrary = 1;
/*
* Caching the last group and passwd looked up is
* a significant win (stupidly enough) on most systems.
/* 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
/* 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