#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/param.h>
#include <sys/types.h>
#include <nsswitch.h>
return -1;
result = internal_getgrouplist (user, group, &size, &newgroups, -1);
memcpy (groups, newgroups, MIN (*ngroups, result) * sizeof (gid_t));
if (result > *ngroups)
{
*ngroups = result;
}
else
memcpy (groups, newgroups, *ngroups * sizeof (gid_t));
free (newgroups);
return result;