On Tue, Feb 22, 2005 at 09:50:55PM +0100, Tom Parker wrote: > Florian Weimer wrote: > >* Tom Parker: > >>Calling getgrnam() with a NULL argument, with group in > >>/etc/nsswitch.conf set to 'compat' can cause a segfault in > >>__nscd_getgrnam_r due to a lack of a check for a NULL string before > >>doing strlen(). > > > >Is there any standard that defines the behavior of getgrnam(NULL)? > > The man page GETGRNAM(3) says: > > RETURN VALUE > The getgrnam() and getgrgid() functions return a pointer to the > group information structure, or NULL if the matching entry is not found > or an error occurs. If an error occurs, errno is set appropriately. If > one wants to check errno after the call, it should be set to zero before > the call. > > I've had a quick look at the POSIX (1003.1-2004) specs, and they say > approximately the same thing (see > http://www.opengroup.org/onlinepubs/000095399/functions/getgrnam.html). > There isn't an exact thing for what to do in the case of getgrnam(NULL), > but given that the "matching entry is not found" (because there can't be > a NULL group), then I think that returning NULL is the correct behaviour.
No, it's not at all the same thing. None of the library functions are required to be robust against NULL input; there's no point making an exception for getgrnam without making an exception for, say, strlen. -- Daniel Jacobowitz CodeSourcery, LLC -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]