On Mon, 10 Sep 2018, Todd C. Miller wrote:
> This is a port of uid_from_user() and gid_from_group() from NetBSD (also 
> present in FreeBSD).
...
> --- lib/libc/gen/pwcache.c    25 Nov 2015 23:16:01 -0000      1.13
> +++ lib/libc/gen/pwcache.c    10 Sep 2018 15:04:35 -0000
...
> +/*
> + * routines that control user, group, uid and gid caches (for the archive
> + * member print routine).

The parenthetical side comment should be deleted.  I suggest capitalizing 
'routines' while there.

...
> +const char *
> +group_from_gid(gid_t gid, int noname)
> +{
> +     struct group grstore, *gr = NULL;
> +     char grbuf[_GR_BUF_LEN];
> +     GIDC *ptr, **pptr;
> +
> +     if ((gidtb == NULL) && (gidtb_start() < 0))
> +             return NULL;

One question is whether these routines should fall back to uncached 
operation if the allocation fails.  "tar -tv" will segfault currently if a 
[ug]idtb_start() call fails.


...
> Index: lib/libc/gen/pwcache.h
> ===================================================================
> RCS file: lib/libc/gen/pwcache.h

I merged cache.h into cache.c in pax because the separate header was 
pointless; why split these bits into a single-use header again?

(...specially because I would maul these data structure a bit...)



> Index: lib/libc/gen/getgrent.c
> Index: lib/libc/Symbols.list
> Index: lib/libc/hidden/grp.h
> Index: lib/libc/hidden/pwd.h

These bits are all correct and do what you desire.


Philip

Reply via email to