"Jordan Crouse" <jordan.crouse@amd.com> says:
The following patch makes coreutils/test.c act fail gracefully if getgroups() returns a -1. This fixes a problem on the One Laptop Per Child ROM image whereby we were getting odd Memory exhausted messages for '[' and 'test'. Found by Mitch Bradley <wmb@firmworks.com> (Tweaked by Rob: no need to initialize a static to NULL, or realloc something that's only allocated when it's NULL.)
This commit is contained in:
parent
98a915713d
commit
ecb29573e9
@ -151,7 +151,7 @@ typedef int arith_t;
|
||||
|
||||
static char **t_wp;
|
||||
static struct t_op const *t_wp_op;
|
||||
static gid_t *group_array = NULL;
|
||||
static gid_t *group_array;
|
||||
static int ngroups;
|
||||
|
||||
static enum token t_lex(char *s);
|
||||
@ -547,9 +547,11 @@ static int test_eaccess(char *path, int mode)
|
||||
static void initialize_group_array(void)
|
||||
{
|
||||
ngroups = getgroups(0, NULL);
|
||||
group_array = xrealloc(group_array, ngroups * sizeof(gid_t));
|
||||
if (ngroups > 0) {
|
||||
group_array = xmalloc(ngroups * sizeof(gid_t));
|
||||
getgroups(ngroups, group_array);
|
||||
}
|
||||
}
|
||||
|
||||
/* Return non-zero if GID is one that we have in our groups list. */
|
||||
static int is_a_group_member(gid_t gid)
|
||||
|
Loading…
Reference in New Issue
Block a user