getpwent_r(3) needs gr->gr_mem to be freed, but that's not documented

Mark Harris mark.hsj@gmail.com
Sun Sep 28 21:54:59 GMT 2025


Alejandro Colomar wrote:
>
> On Sun, Sep 28, 2025 at 10:26:33PM +0200, Alejandro Colomar wrote:
> > Hi!
> >
> > Another thing I realized about getpwent_r(3) et al. is that gr->gr_mem
>
> Actually, getgrent_r(3).
>
> > is allocated by the function, but is expected to be freed by the caller.
> >
> > I didn't find this documented, neither in the manual page nor in the
> > glibc manual.  Is it documented but I missed it?  Or did I misunderstand
> > something?  Or is it just that nobody documented it?

All memory referenced by the structure, including gr_mem, comes out of
the buffer supplied to the function.  POSIX doesn't have getgrent_r,
but it has getgrgid_r, and says:

    Storage referenced by the group structure is allocated from the
memory provided with the buffer parameter, which is bufsize bytes in
size.

> >
> >
> > Have a lovely night!
> > Alex
> >
> >
> > --
> > <https://www.alejandro-colomar.es>
> > Use port 80 (that is, <...:80/>).
>
>
>
> --
> <https://www.alejandro-colomar.es>
> Use port 80 (that is, <...:80/>).


More information about the Libc-alpha mailing list