There are 2 issues:
The code is currently checking if "errno" is == ERANGE, but getgrgid_r is thread safe and returns the error code.
Even if getgrgid_r succeeds, the code needs to check the value of gEnt since it may be NULL.
From http://pubs.opengroup.org/onlinepubs/009695299/functions/getgrgid.html
int getgrgid_r(gid_t gid, struct group grp, char *buffer,
size_t bufsize, struct group *result);
...
The getgrgid_r() function shall update the group structure pointed to by grp and store a pointer to that structure at the location pointed to by result.... A NULL pointer shall be returned at the location pointed to by result on error or if the requested entry is not found.
—
Reply to this email directly or view it on GitHub.
Use REPLY-ALL to reply to list
To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1